负载平衡 – 会话的粘性

在一个负载均衡的环境中:来自给定组件的两个后续调用到达同一个服务器的可能性有多大?

让我解释一下:如果组件A调用组件B,然后组件A失败,组件A再次调用组件B,那么组件B访问同一台机器的可能性有多大?

假设软件被写入使用事务,并且上述情况将全部在单个会话中发生。 IE的组件A称为组件,并且在组件B被第二次调用后仍然在等待回复。

此外,我们假设所有组件的调用都通过负载均衡服务进行,群集中的所有机器都安装了所有组件。

实际上,我希望第二次调用另一台机器,而不是重试同一台机器。 我将不得不做我自己的手动负载平衡? (请不要说!!! 😉

任何帮助,指导和反馈将不胜感激。

谢谢

这个答案完全取决于你的负载平衡。

在最基本的,基于Windows的软件负载平衡方面,通过许多选项,甚至Zeus的ZXTM或思科的ACE等巨大的可configurationfunction,在function之间有巨大的差距。

在高端解决scheme中,你所要求的是非常简单的,我不能回答你的首选解决scheme,而不知道它是什么。

我们成功地使用了Cisco CSM(第一代到ACE)来将自定义套接字调用与专门的后端数据库服务器(当时运行自定义C套接字)进行负载平衡。 以前,前端Web服务器将不得不超时重试不同的套接字,但在部署到CSM之后,实际上看到平均请求时间减less,因为CSM消除了所有超时。

在大多数负载平衡硬件上,第二次调用“到不同的机器”相当容易configuration。 通常甚至可以根据后端服务器的响应来configuration“失败”。

这真的取决于你的负载平衡是什么,以及它是如何configuration的。 例如,如果您select使用LVS作为负载平衡器的Linux机器,则可以在多种负载平衡方法中进行select,包括round-robin(声音之后的声音),源地址散列等。

大多数其他负载平衡解决scheme也具有类似的function,所以它会工作,但你已经configuration它。