具有持久 TCP 连接的 HAProxy 中的 TCP 负载平衡
TCP load balancing in HAProxy with persistent TCP connections
目前,我有一个客户端(组件)与服务器(另一个组件)有一个持久的 TCP 连接,并且消息是异步交换的。我想要一个负载均衡器(最好是 HAProxy),其中连接 b/w 客户端和负载均衡器以及 b/w 负载均衡器和多个服务器作为持久 TCP 连接。
我知道 HAProxy 可以很容易地设置为 TCP 负载平衡,但我想知道它是否支持开箱即用的持久连接。如果有人指出我正确的方向,那将是很大的帮助。谢谢。
是的,它支持开箱即用的持久 TCP 连接。 haproxy 中的一个简单实现如下所示
listen tcpProxy 0.0.0.0:7000
mode tcp
balance source
server tcp1 ip1:port check maxconn 10000
server tcp2 ip2:port check maxconn 10000
希望对您有所帮助
这是不可能的。 TCP 是有状态协议。即使我们通过一些技巧来做到这一点,例如 iptables 镜像,目标后端主机也会丢弃没有握手或预数据包的数据包。
您将不得不考虑使用 UDP。
目前,我有一个客户端(组件)与服务器(另一个组件)有一个持久的 TCP 连接,并且消息是异步交换的。我想要一个负载均衡器(最好是 HAProxy),其中连接 b/w 客户端和负载均衡器以及 b/w 负载均衡器和多个服务器作为持久 TCP 连接。
我知道 HAProxy 可以很容易地设置为 TCP 负载平衡,但我想知道它是否支持开箱即用的持久连接。如果有人指出我正确的方向,那将是很大的帮助。谢谢。
是的,它支持开箱即用的持久 TCP 连接。 haproxy 中的一个简单实现如下所示
listen tcpProxy 0.0.0.0:7000
mode tcp
balance source
server tcp1 ip1:port check maxconn 10000
server tcp2 ip2:port check maxconn 10000
希望对您有所帮助
这是不可能的。 TCP 是有状态协议。即使我们通过一些技巧来做到这一点,例如 iptables 镜像,目标后端主机也会丢弃没有握手或预数据包的数据包。
您将不得不考虑使用 UDP。