项目是用 SpringBoot 写的,整个部署过程是通过在流水线上执行脚本完成的,目前已经发现可以通过一定的套路重现这个问题,但是还是有些疑惑:
项目 HTTPS 协议的端口是 7443 ,我们发现,通过脚本启动项目的时候,是有一个过程的,SpringBoot 项目启动完成后,才会有一个“完整”的 Java 进程,所谓“完整”是指通过 netstat 命令查看启动完成后的 Java 进程的 TCP 状态,其会有一个状态为 LISTENING 的 TCP 状态,监听端口为 7443 ,也就是说,启动一个 SpringBoot 程序,立即会有一个 JAVA 进程,但是离“完整”有一段时间的。
发现如果没有等待前面的 Java 项目启动完成,再次启动该 SpringBoot 项目,等待其启动完成后,有时会同时出现两个 JAVA 进程,第一个 JAVA 进程看起来“不完整”,没有 LISTENING 状态的 TCP 状态,只有一个 established 的 TCP 状态,说明有个机器和它建立了连接。第二个 JAVA 进程是“完整的”…..