报错
我的预约挂号服务突然挂了,查看tomcat的端口号的时候出现,一堆的close_wait导致了我的tomcat假死,就算重启了,再看端口号也是一堆close_wait。
应急处理
因为是个网上预约挂号服务,不能停太久。
所以我没有查原因直接把所有占用我的端口的进程全杀了,然后重启,不管了,先恢复服务再查原因。
把占用端口的命令全杀了的命令:sudo kill -9 $(lsof -i:端口号 -t)
原因
查看最新日志catalina.out ,没有发现异常,也没有error 日志;查看localhost_access.log 也没有最新的访问日志,说明我这台tomcat 已不能提供服务了!
然后想到这个tomcat挂的时候正好内网出了问题,想到的是网络是问题
看看客户端已经断开连接,但服务器还在发送消息,讲道理服务器也应该要断开连接才对的。根据TCP的三次握手和四次挥手,这不对啊,
tomcat常用的三个状态是:
ESTABLISHED 正在通信
TIME_WAIT 主动关闭
CLOSE_WAIT 表示被动关闭。
避免再次出现该问题的方案
方案一
这个BUG很显然就是服务器端代码