gpt4 book ai didi

tomcat - HTTP 负载平衡行为

转载 作者:行者123 更新时间:2023-11-28 23:42:39 25 4
gpt4 key购买 nike

我试图了解这种设置在应用服务器出现故障时的系统行为:

  • 托管 Web 应用程序的两个 tomcat 服务器前面的硬件负载平衡器
  • 负载均衡器粘性活跃
  • 两个配置有持久 session 管理器或在集群中的 tomcat

我的理解是,如果两个 tomcat 之一在服务请求时崩溃,用户会收到一条 http 错误消息,当他尝试刷新页面时,平衡器会将用户重定向到工作中的 tomcat,它将再次开始处理请求。

这是正确的吗?没有办法避免用户在处理请求的服务器出现故障时收到错误消息吗?

最佳答案

行为取决于负载平衡器的配置方式、您从 tomcat 服务器收到的错误以及您的应用程序的行为。

负载均衡器会定期(每隔几秒)检查它所监控的服务器的健康状况;因此,单个服务器完全有可能在用户请求之间崩溃并被负载均衡器注意到。然后将该服务器从该组中取出,当用户下次刷新时,他们将被定向到其余服务器之一,而不知道中间出了什么问题。

但这取决于您的应用程序是无状态的。如果任何状态存储在单个服务器上(使用粘性 session 暗示),那么当用户重定向到另一台服务器时,他们可能会遇到 session 超时或其他错误,并且必须重新登录并重新开始。因此,避免用户出错的第 1 步是使应用程序无状态或以某种方式有效地共享状态。

还值得考虑应用程序如何失败以及负载平衡器是否会检测到它。通常,负载均衡器配置为用于第 4 层或第 7 层健康检查。

第 4 层检查网络服务器是否正在监听给定端口(例如端口 80)。只要它响应服务器就保持在组中。这适用于服务器启动/关闭类型的监控,但您可能会遇到这样的情况:您的应用程序出现错误或卡住,但 Web 服务器正在端口 80 上响应并且用户仍被定向到它。

第 7 层检查其配置为监控的网页上的给定内容。这是更“真实世界”的监控,因为它查看的是与用户相同类型的内容,并且会因应用程序级问题而将服务器排除在组之外。

关于tomcat - HTTP 负载平衡行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17993229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com