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


8

首先,我不是系统管理员,而是程序员。

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

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

  • 这是预期的行为吗?
  • 负载均衡器在超时后复制了请求,而不是让用户不必刷新,这有什么好处?
  • 使用这种体系结构,如果运行了使服务器瘫痪或占用资源的脚本,则该脚本最终将在两个服务器上运行。那真的是最佳选择吗?

当您说“向同一台服务器发送相同的请求”时,是指配置的运行状况检查还是用户请求?我的感觉不是,但是值得澄清。答案将更改答案和/或任何建议。
mcauth

@mcauth它重新发送用户请求。基本上,如果用户执行任何提示500错误的操作,则负载均衡器会将相同的确切请求发送到另一台服务器,从而从单个HTTP请求创建两个响应。
Jim D

1
我进入Big-IP轨道已经有很长时间了,除非明确要求这样做,否则我从来不知道它会重播请求,例如,通过iRule执行HTTP :: collect来缓冲请求有效负载。很奇怪。没有看到正在运行的配置,这很难说。
mcauth 2013年

只是稍微碰一下这个线程,就可以让您知道我遇到了同样的问题。您是否有进一步解决方案?
BitMask777 2014年

@ BitMask777-不幸的是,我们从来没有真正做到这一点。这仍然是负载平衡器的行为,我们一直在“应对”。
Jim D

Answers:



0

如果发生500错误,则表明Web服务器上有问题。F5然后将简单地将此错误转发给连接的客户端。它不会自行发送“重新发送”请求。发生这种情况的唯一方法是客户端重试该请求。到那时,尽管没有保证,并且可以基于持久性或所使用的负载平衡方法(轮询,最少连接等),但此请求可能会被负载平衡到另一个池成员。

简而言之,除非您在F5上有一些非常疯狂的iRule,否则这是脚本本身引起的。

(注意:我是L5的Nework支持工程师,一年半使用LTM。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.