docker haproxy 镜像的 tcp 负载均衡出现定时断开现象

使用emq产品左消息服务器,前端是haproxy容器代理TCP转发,具体配置如下

global
      tune.ssl.default-dh-param 2048
defaults
       log 127.0.0.1 local3
       mode http                       #所处理的类别 (#7层 http;4层tcp  )
       maxconn 10000                   #最大连接数
       option dontlognull              #不记录健康检查的日志信息
       option redispatch               #serverId对应的服务器挂掉后,强制定向到其他健康的服务器
       #stats refresh 30                #统计页面刷新间隔
       retries 3                       #3次连接失败就认为服务不可用,也可以通过后面设置
       balance roundrobin              #默认的负载均衡的方式,轮询方式
      #balance source                  #默认的负载均衡的方式,类似nginx的ip_hash
      #balance leastconn               #默认的负载均衡的方式,最小连接
      timeout connect 5000                 #连接超时
      timeout client 50000                #客户端超时
      timeout server 50000                #服务器超时
       timeout check 2000              #心跳检测超时
listen mqtt-ssl
    #bind *:1883
    bind *:8883 ssl crt /etc/ssl/emqttd/emq.pem no-sslv3
    mode tcp
    option clitcpka
    maxconn 50000
    timeout check 5000
    balance leastconn
    #server emq1 192.168.0.123:1883 check inter 10000 fall 2 rise 5 weight 1
    server emq2 192.168.0.125:1883 check inter 10000 fall 2 rise 5 weight 1

如下配置后,使用mqtt客户端连接会出现定时断开连接,因为mqtt连接是长连接,需要保持时时连接状态,但查了相关haproxy

资料发现haproxy会对没有消息的连接进行主动断开。原因是在上面两个配置选项 (timeout client 50000 ,timeout server 50000),这个是检查服务端和客户端连接超时情况。后来把这两个注释后就不会出现mqtt连接断开情况。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值