负载平衡机制直接连接后端和客户端?

时间:2019-07-09 04:45:47

标签: c++ load-balancing

我正在尝试使用多个服务器来实现系统,这些服务器通过TCP与客户端进行通信。由于将有多个后端服务器来处理客户端的请求,所以我想知道是否存在一种负载均衡机制,该机制在负载均衡器接收到客户端请求之后,会将客户端直接连接到后端服务器,以便它们建立一个双向TCP连接,并且两者之间的所有将来通信都直接在它们之间完成,而不是通过负载平衡器完成。

1 个答案:

答案 0 :(得分:1)

一般来说,不,IP不允许这样做,不能将单个连接移交给其他计算机。该协议不允许它。在高可用性的情况下,您可以将所有连接从一台计算机切换到另一台计算机,但这甚至是一种破解,并且可以使用MAC地址移位来完成。

您想要的可能是类似HAProxy的东西,它是一个TCP / IP负载平衡器。足够快,以至于进入中间并不是一个真正的问题,您不会感到性能受到影响。

另一种方法是在应用程序层中执行一些操作,您的“负载平衡器”将告诉客户端要连接到哪个服务器,但实际上不进行连接。这是由客户端在辅助请求中完成的。有时,这是通过DNS完成的,有时是通过限时令牌完成的,以确保客户端尊重路由。