【发布时间】:2015-12-14 14:20:06
【问题描述】:
我已经配置了 HAProxy(1.5.4,但我也尝试了 1.5.14)以在 TCP 模式下平衡两个在 5672 端口上公开 AMQP 协议(WSO2 消息代理)的服务器。 客户端通过 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
【问题讨论】:
标签: tcp centos timeout amqp haproxy