如果tomcat因内存不足而重新启动,之前的客户端请求会发生什么情况

问题描述 投票:0回答:1

假设有两台tomcat服务器,其中一台tomcat服务器停止并重新启动。 当时有一个客户端正在向tomcat服务器请求订单列表。

在这种情况下,请求将如何处理?

  1. 请求将被取消。所以客户应该再次请求。
  2. 将请求交给另一台tomcat服务器,tomcat服务器将继续客户端的请求

感谢您的阅读。

tomcat
1个回答
0
投票

一般来说以下是比较广泛使用的 Tomcat HA 模式部署机制(无反向代理)

  1. Tomcat 使用负载均衡器和粘性会话进行集群

  2. 使用Tomcat原生集群(需要启用多播网络)

  3. 使用外部会话存储/管理器

在上述上下文中:

请求将被取消。所以客户应该再次请求。

在上述任何一种情况下,客户都必须重新发出请求

将请求交给另一台tomcat服务器,tomcat服务器将继续客户端的请求

这不会发生,因为服务器/客户端之间的套接字将被关闭

如果tomcat服务器有会话集群,会发生什么?第二个服务器会持续处理请求吗?

第二个服务器将处理任何新请求,客户端无需重新登录。原始请求无论如何都会被终止

有一种情况,如果有智能负载均衡器,当第一个 Tomcat 出现故障时,负载均衡器会在分派请求之前确定这一点,或者[这更理论化,我实际上没有遇到过任何负载均衡器这样做]在从第一个Tomcat接收响应的过程中,它可以调度到第二个Tomcat

© www.soinside.com 2019 - 2024. All rights reserved.