RabbitMQ之集群故障恢复
1.环境
3台虚拟机并已搭建好了集群。查看 集群搭建
主节点yzm1(128)、从节点yzm2(129)、从节点yzm3(130)
2.主节点正常,从节点宕机
查看集群状态,3台虚拟机都是正常运行状态
使yzm2宕机,关闭yzm2对应的虚拟机
剔除yzm2的节点
重新启动yzm2的rabbitmq服务
报错信息:Node rabbit@yzm2 thinks it’s clustered with node rabbit@yzm3, but rabbit@yzm3 disagrees
意思是yzm2宕机不属于正常退出集群情况,仍然保留有集群的节点配置信息,但集群中已踢出了yzm2节点
解决方法清除保留的节点配置信息:rm -rf /var/lib/rabbitmq/mnesia/*
mnesia目录里面的文件删除后,过一会就会重新生成的
如果不小心把mnesia目录都给删除了,那么重新创建mnesia目录,但必须确保该目录的用户和组都是rabbitmq
命令:chown rabbitmq:rabbitmq /var/lib/rabbitmq/
yzm2重新加入集群
3.主节点宕机,从节点正常
关闭yzm3、yzm2
yzm1宕机,关掉虚拟机
此时yzm1是最后的节点,最后的节点也就被当成主节点了
启动yzm2,它就会一直等待yzm1启动才能启动,超时了就启动失败
操作yzm3来剔除yzm1
主要命令:
rabbitmqctl force_boot
rabbitmqctl start_app
rabbitmqctl forget_cluster_node rabbit@yzm1
我多次使用 --offline 参数,但没有使用成功过,不知道为什么
例如这样的用法:
rabbitmqctl forget_cluster_node --offline rabbit@yzm1
rabbitmqctl -n rabbit@yzm3 forget_cluster_node --offline rabbit@yzm1
最后重启yzm1并加入集群
这步操作跟上面yzm2重启加入集群是一样,都需要先删除节点配置信息
集群状态
4.启动节点前进行节点更新
当前集群有节点yzm2和yzm3
关闭节点yzm2
同时启动yzm1重新加入集群(启动rabbitmq服务前需要清除节点配置信息)
关闭yzm3节点,启动yzm2节点
yzm2会一直等待,直到超时报错
正确的是,先咨询一下在集群中正常运行的yzm1再启动
rabbitmqctl update_cluster_nodes rabbit@yzm1
作者:yzm4399
来源链接:https://blog.csdn.net/qq_43654581/article/details/121516201
版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。
2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。