假设有两台tomcat服务器,其中一台tomcat服务器停止并重新启动。 当时有一个客户端正在向tomcat服务器请求订单列表。
在这种情况下,请求将如何处理?
感谢您的阅读。
一般来说以下是比较广泛使用的 Tomcat HA 模式部署机制(无反向代理)
Tomcat 使用负载均衡器和粘性会话进行集群
使用Tomcat原生集群(需要启用多播网络)
使用外部会话存储/管理器
在上述上下文中:
请求将被取消。所以客户应该再次请求。
在上述任何一种情况下,客户都必须重新发出请求
将请求交给另一台tomcat服务器,tomcat服务器将继续客户端的请求
这不会发生,因为服务器/客户端之间的套接字将被关闭
如果tomcat服务器有会话集群,会发生什么?第二个服务器会持续处理请求吗?
第二个服务器将处理任何新请求,客户端无需重新登录。原始请求无论如何都会被终止
有一种情况,如果有智能负载均衡器,当第一个 Tomcat 出现故障时,负载均衡器会在分派请求之前确定这一点,或者[这更理论化,我实际上没有遇到过任何负载均衡器这样做]在从第一个Tomcat接收响应的过程中,它可以调度到第二个Tomcat