F5 将来自一个客户端的所有 REST 请求路由到同一主机

F5 将来自一个客户端的所有 REST 请求路由到同一主机

我有一个 rest webservice 集群在 F5 后面,使用 SSL 终止、SSL 持久性,平衡是“最少连接”。此服务每天查看数百万条消息。我们的绝大多数客户每分钟可能只发布几条消息。但是,我们确实有一些以批量方式运行的客户,可以在很短的时间内发送多达 150 万条消息。当这些客户端启动批处理时,我们看到的行为是 F5 将所有消息路由到一个实例。这会创建一个热点,有时会导致故障。

我不熟悉客户端代码,但可以访问它以查看它们如何创建连接。但是,我想知道 F5 配置中是否存在我可能犯错的地方,从而无意中导致了这种情况?

任何帮助将不胜感激。

答案1

发生这种情况的原因是,当客户端连接时,它会与特定的后端服务器建立连接,并且只要该连接存在,F5 就会使用该连接发送所有后续请求。在处理来自人类用户的典型客户端 Web 请求时,这可以解决许多问题,并且是典型行为。此行为取代了持久性行为,并且尽管存在 SSL 持久性,它仍会发生。浏览器通常会在几秒钟的空闲时间后断开连接,但脚本不会。但是,在处理来自客户端的脚本时,这听起来会导致许多问题。要修复它,您需要使用 iRule 并挂接到HTTP_REQUEST 事件。然后您可以强制每个后续请求转到不同的服务器。

相关内容