F5 负载均衡器超时后重新发送请求

F5 负载均衡器超时后重新发送请求

首先我要声明,我不是系统管理员,我是一名程序员。

最近,我们的系统管理员安装了 F5 负载平衡器。从那时起,我注意到,只要请求超时并最终抛出 500,负载平衡器就会将相同的请求发送到我们的另一台服务器。即使脚本实际上仍在运行,IIS 也会发送超时响应。如果脚本运行超过 5 分钟,即使是 POST 请求也会重复。这对我来说似乎是一个潜在的问题,尤其是对于涉及客户计费的电子商务网站。

这只是我们一些运行时间较长的脚本的问题(但这是一个严重的问题)。我被告知这是预期的行为,我们必须更改代码以符合要求。所以我的问题是:

  • 这是预期的行为吗?
  • 除了用户不必刷新之外,负载均衡器在超时后复制请求还有什么好处?
  • 在这种架构下,如果运行的脚本会拖慢服务器或占用大量资源,那么该脚本最终会在两台服务器上运行。这真的是最佳选择吗?

答案1

请查看 Big-IP 中有关被动应用程序监控的条目

尽管你的问题可能让你失望,但我的回答是

  • 也许(取决于被动监控配置)

  • 用户没有看到错误

  • 也许(我是否想为用户提供错误服务或在其他地方尝试请求?)

“服务中断时的操作”是一个可配置的设置。

答案2

如果出现 500 错误,则表明 Web 服务器存在问题。F5 会将此错误转发给连接的客户端。它不会主动“重新发送”请求。唯一可能发生这种情况的方法是客户端重新尝试请求。此时,此请求可能会被负载平衡到另一个池成员,尽管没有保证,并且将基于持久性或使用的负载平衡方法(循环、最少连接等)。

简而言之,除非你的 F5 上有一些非常疯狂的 iRule,否则这是由脚本本身导致的行为。

(注:我曾担任 F5 网络支持工程师一年半,负责 LTM 工作)

相关内容