使用 NIO 连接器时,Tomcat 9.0.80+ 如何处理正常关闭?
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
gracefulStopAwaitMillis="15000"
bindOnInit="false"
protocol="org.apache.coyote.http11.Http11NioProtocol" />
我已经在使用 HAproxy 进行重试、重新调度和运行状况检查。我还配置了 Tomcat 以使用正常关闭和延迟绑定(根据建议),让任何反向代理/负载均衡器重新分派到另一个后端。但我不确定它是否真的等待进程内请求完成处理后再退出。我的测试表明是这样,但我偶尔会从位于 HAproxy(高级路由、API 网关)前面的面向公众的 ALB(TLS、WAF)收到 HTTP 502,然后一大堆 Tomcat 服务器滚动重启。
结论
它不保证所有请求都会得到处理!
据我所知,发生的事情是这样的: