rabbitmq高可用
rabbitmq高可用
1、安装3台Rabbitmq服务器
2、同步主服务器cookie文件到其他服务器
3、停止两台从服务器
4、两台从服务器加入到主服务器集群 rabbitmqctl join_cluster rabbit@host1
5、设置镜像队列 sudo rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
6、两台haproxy服务器
haproxy 监控页面地址是:http://192.168.68.131:9188/haproxy_status
listen admin_stats
bind *:9188
mode http
log 127.0.0.1 local3 err
stats refresh 60s
stats uri /haproxy_status
stats realm welcome login\ Haproxy
stats auth admin:123456
stats hide-version
stats admin if TRUE
rabbitmq 集群配置,转发到
listen rabbitmq_cluster
bind *:5672
mode tcp
balance roundrobin
server rabbitnode1 192.168.85.131:5672 check inter 2000 rise 2 fall 3 weight 1
server rabbitnode2 192.168.85.132:5672 check inter 2000 rise 2 fall 3 weight 1
server rabbitnode3 192.168.85.133:5672 check inter 2000 rise 2 fall 3 weight 1
这样任意一台haproxy都对3台rabbitmq负载,并且如果2秒检查2次失败的话,会将失败节点移除
7、两台keepalived
-------------------------------------------------主配置--------------------------------------------
global_defs {
router_id haproxy #虚拟路由名称
}
#HAProxy健康检查配置
vrrp_script chk_haproxy {
script "killall -0 haproxy" #使用killall -0检查haproxy实例是否存在,性能高于ps命令
interval 2 #脚本运行周期
weight 2 #每次检查的加权权重值
}
#虚拟路由配置
vrrp_instance VI_1 {
state MASTER #本机实例状态,MASTER/BACKUP,备机配置文件中请写BACKUP
interface ens33 #本机网卡名称,使用ifconfig命令查看
virtual_router_id 51 #虚拟路由编号,主备机保持一致
priority 101 #本机初始权重,备机请填写小于主机的值(例如100)
advert_int 1 #争抢虚地址的周期,秒
virtual_ipaddress {
192.168.85.150 #虚地址IP,主备机保持一致
}
track_script {
chk_haproxy #对应的健康检查配置
}
}
-------------------------------------------------从配置--------------------------------------------
global_defs {
router_id haproxy #虚拟路由名称
}
#HAProxy健康检查配置
vrrp_script chk_haproxy {
script "killall -0 haproxy" #使用killall -0检查haproxy实例是否存在,性能高于ps命令
interval 2 #脚本运行周期
weight 2 #每次检查的加权权重值
}
#虚拟路由配置
vrrp_instance VI_1 {
state BACKUP #本机实例状态,MASTER/BACKUP,备机配置文件中请写BACKUP
interface ens33 #本机网卡名称,使用ifconfig命令查看
virtual_router_id 51 #虚拟路由编号,主备机保持一致
priority 100 #本机初始权重,备机请填写小于主机的值(例如100)
advert_int 1 #争抢虚地址的周期,秒
virtual_ipaddress {
192.168.85.150 #虚地址IP,主备机保持一致
}
track_script {
chk_haproxy #对应的健康检查配置
}
}