我已经配置了HAProxy(1.5.4,但我也试过1.5.14)来平衡TCP模式两个服务器在5672端口上暴露AMQP协议(WSO2 Message Broker).客户端通过HAProxy创建并使用与AMQP服务器的永久连接.
我已经更改了客户端和服务器TCP keepalive超时,设置net.ipv4.tcp_keepalive_time = 120(CentOS 7).
在HAProxy中,我将超时客户端/服务器设置为200秒(> 120秒的keepalive数据包)并使用选项clitcpka.
然后我开始使用wireshark并嗅探所有tcp流量:在客户端的最后一个请求之后,tcp keepalived数据包在120秒后定期发送,但在客户端的最后一次请求后200秒后连接被关闭(因此忽略keepalived包).
配置下方:
haproxy.conf
global
log 127.0.0.1 local3
maxconn 4096
user haproxy
group haproxy
daemon
debug
listen messagebroker_balancer 172.19.19.91:5672
mode tcp
log global
retries 3
timeout connect 5000ms
option redispatch
timeout client 200000ms
timeout server 200000ms
option tcplog
option clitcpka
balance leastconn
server s1 172.19.19.79:5672 check inter 5s rise 2 fall 3
server s2 172.19.19.80:5672 check inter 5s rise 2 fall 3
Run Code Online (Sandbox Code Playgroud)