#绑定配置
listen rabbitmq_cluster
bind 0.0.0.0:5672
#配置TCP模式
mode tcp
#加权轮询
balance roundrobin
#RabbitMQ集群节点配置,其中ip1~ip7为RabbitMQ集群节点ip地址
server rmq_node1 ip1:5672 check inter 5000 rise 2 fall 3 weight 1
server rmq_node2 ip2:5672 check inter 5000 rise 2 fall 3 weight 1
server rmq_node3 ip3:5672 check inter 5000 rise 2 fall 3 weight 1
server rmq_node4 ip4:5672 check inter 5000 rise 2 fall 3 weight 1
server rmq_node5 ip5:5672 check inter 5000 rise 2 fall 3 weight 1
server rmq_node6 ip6:5672 check inter 5000 rise 2 fall 3 weight 1
server rmq_node7 ip7:5672 check inter 5000 rise 2 fall 3 weight 1
#haproxy监控页面地址
listen monitor
bind 0.0.0.0:8100
mode http
option httplog
stats enable
stats uri /stats
stats refresh 5s
在上面的配置中“listen rabbitmq_cluster bind 0.0.0.0:5671”这里定义了客户端连接IP地址和端口号。这里配置的负载均衡算法是roundrobin—加权轮询。与配置RabbitMQ集群负载均衡最为相关的是“ server rmq_node1 ip1:5672 check inter 5000 rise 2 fall 3 weight 1”这种,它标识并且定义了后端RabbitMQ的服务。主要含义如下:
(a)“server <name>”部分:定义HAProxy内RabbitMQ服务的标识;
(b)“ip1:5672”部分:标识了后端RabbitMQ的服务地址;
(c)“check inter <value>”部分:表示每隔多少毫秒检查RabbitMQ服务是否可用;
(d)“rise <value>”部分:表示RabbitMQ服务在发生故障之后,需要多少次健康检查才能被再次确认可用;
(e)“fall <value>”部分:表示需要经历多少次失败的健康检查之后,HAProxy才会停止使用此RabbitMQ服务。