RabbitMQ-高可用性(HA)
HAProxy 是一个免费的负载均衡软件,可以运行于大部分主流的 Linux 操作系统上。
HAProxy 提供了 L4(TCP) 和 L7(HTTP) 两种负载均衡能力,具备丰富的功能。HAProxy 的社区非常活跃,版本更新快速。最关键的是,HAProxy 具备媲美商用负载均衡器的性能和稳定性。它当前不仅仅是免费负载均衡软件的首选,更几乎成为了唯一选择。
因为 RabbitMQ 本身不提供负载均衡,下面我们就搭建 HAProxy,用作 RabbitMQ 集群的负载均衡。
1: 安装haproxy 在node1上面
[root@node1 ~]# yum install haproxy -y
2: 配置haproxy
[root@node1 ~]# cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak
[root@node1 ~]# vim /etc/haproxy/haproxy.cfg
3:将下面的配置添加到/etc/haproxy/haproxy.cfg文件中:
global
log 127.0.0.1 local0 info
log 127.0.0.1 local1 notice
daemon
maxconn 4096
defaults
log global
mode tcp
option tcplog
option dontlognull
retries 3
option abortonclose
maxconn 4096
timeout connect 5000ms
timeout client 3000ms
timeout server 3000ms
balance roundrobin
listen private_monitoring
bind 0.0.0.0:8100
mode http
option httplog
stats refresh 5s
stats uri /stats
stats realm Haproxy
stats auth admin:admin
listen rabbitmq_admin
bind 0.0.0.0:8102
server node1 node1:15672
server node2 node2:15672
listen rabbitmq_cluster
bind 0.0.0.0:8101
mode tcp
option tcplog
balance roundrobin
timeout client 3h
timeout server 3h
server node1 node1:5672 check inter 5000 rise 2 fall 3
server node2 node2:5672 check inter 5000 rise 2 fall 3
3: 启动haproxy
[root@node1 ~]# systemctl start haproxy.service
加入开机自启:
[root@node1 ~]# systemctl enable haproxy.service
4: HAProxy 配置了三个地址:
http://node1:8100/stats:HAProxy 负载均衡信息地址,账号密码:admin/admin。
http://node1:8101:RabbitMQ Server Web 管理界面(基于负载均衡)。
http://node1:8102:RabbitMQ Server 服务地址(基于负载均衡)。
通过访问http://192.168.6.111:8100/stats,查看 HAProxy 负载均衡信息:
到此rabbitmq 高可用搭建到此结束。有时间后期会写一些关于zabbix监控rabbitmq的文章。