使用HAProxy+KeepAlived搭建高可用RabbitMQ集群出现脑裂问题
1.问题现象
两台服务器133(master)和134(backup)均绑定了VIP
2.排查过程
-
查看backup节点的日志信息,可以发现backup节点在启动后先进入backup状态,然后马上又进入了master状态,并绑定了VIP
tail -100 /var/log/messages
-
使用tcpdump工具进行抓包,发现两个节点都在进行广播,正常情况应该只有master才进行VRRP广播。
tcpdump -i ens33 vrrp -n # ens33为网卡名称
3.解决方法
两个节点都关闭防火墙
# 1、关闭firewall
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止Firewalls开机启动
# 2、安装iptables
yum install iptables-services #安装
vi /etc/sysconfig/iptables #编辑配置文件
# 3、配置文件中添加 -A INPUT -p vrrp -j ACCEPT,注意这行一定要放到reject的前面,否则会不起作用
# 4、重启
systemctl restart iptables.service #重启
systemctl enable iptables.service #开机启动
4.结果
master节点:
backup节点:
5. 原因分析
防火墙过滤掉了VRRP消息,导致backup节点无法接收到master的消息,也就无法得知VIP已经绑定了master,因此自己会进入master的状态,并绑定VIP