为什么haproxy / rabbitmq消费者偶尔会被卡住?

时间:2016-04-18 13:53:51

标签: rabbitmq haproxy

需要有关组合的帮助和/或想法:haproxy + rabbitmq。

拓扑

  • 3个rabbitmq代理的集群,队列的复制策略{ha-mode:all}
  • 具有业务逻辑的Java应用程序正在少数节点上运行
  • haproxy与上面的每个java应用程序在同一节点上运行,代理到rabbitmq集群
  • 在Java应用程序之间流动的消息每个队列每天数十万,队列数量大约为20

问题

  • 偶尔,几天内,消息堆积在队列中,java端的消费者似乎闲置或卡住
  • 重新启动haproxy解决了这个问题,消费者重新连接,恢复并最终成功清空队列

备注

  • 日志中没有错误,我已经设置了ExceptionHandler,并且通过thouroghly记录了所有内容

问题

  • 这可能是造成这个问题的根本原因?

haproxy.cfg:

global
    log 127.0.0.1 local1
    maxconn 4096
    daemon
    user haproxy
    group haproxy

defaults
    timeout client 50000
    timeout server 50000
    timeout connect 5000
    log global
    mode tcp
    retries 3
    maxconn 2000
    option redispatch
    option tcplog

listen ampq
    bind *:5672
    mode tcp
    balance leastconn
    timeout client 3h
    timeout server 3h
    stick match src
    stick-table type ip size 200k expire 30m
    option clitcpka
    server rabbit1 10.6.1.1:5672 check inter 1s rise 3 fall 1
    server rabbit2 10.6.1.2:5672 check inter 1s rise 3 fall 1
    server rabbit3 10.6.1.3:5672 check inter 1s rise 3 fall 1

0 个答案:

没有答案