RabbitMQ集群出现过机器故障,网络异常等故障后,重启无法重新建立集群的终极解决方案
由于机器掉电,网络故障等原因,RabbitMQ整个集群出现问题。重启RabbitMQ时,发现某些机器始终无法重新加入到集群中,而且还可能出现网络分区。
针对不同情况,可能选择 rabbitmqctl forget_cluster_node {nodename}等等解决方案。
如果错误还是始终无法解决,我们可以选择极端方案,重新搭建集群。
重新搭建集群,最关键的一步是清除历史数据。
举例如下:
现在局域网有三台机器
192.168.1.111 rabbit@www111
192.168.1.112 rabbit@www112
192.168.1.113 rabbit@www113
由于各种原因,现在这三台机器安装组建集群的方案搭建集群,发现始终无法成功,至多只能有两台机器可以组建集群。
这时,可以查看各个节点的mnesia目录下的cluster_nodes.config文件内容。
以rabbit@www112举例,我们发现集群节点信息不正确
[root@www112 rabbit@www112]# cat cluster_nodes.config
{[rabbit@www112,rabbit@www111,rabbit@www113],[rabbit@www111,rabbit@www112]}.
正确的集群信息如下:
[root@www111 rabbit@www111]# cat cluster_nodes.config
{[rabbit@www111,rabbit@www112,rabbit@www113],[rabbit@www111,rabbit@www112,rabbit@www113]}.
解决方案:关闭集群中所有节点,在mnesia目录下执行 rm -rf * 清空所有数据,重新建立集群。
举例如下:
[root@www112 rabbit@www112]# ls
cluster_nodes.config msg_store_persistent rabbit_durable_exchange.DCD rabbit_durable_route.DCD rabbit_user.DCD recovery.dets
DECISION_TAB.LOG msg_store_transient rabbit_durable_queue.DCD rabbit_runtime_parameters.DCD rabbit_user_permission.DCD schema.DAT
LATEST.LOG nodes_running_at_shutdown rabbit_durable_queue.DCL rabbit_serial rabbit_vhost.DCD schema_version
[root@www112 rabbit@www112]# cat cluster_nodes.config
{[rabbit@www112,rabbit@www111,rabbit@www113],[rabbit@www111,rabbit@www112]}.
[root@www112 rabbit@www112]# cd ..
[root@www112 mnesia]# rm -rf *
[root@www112 mnesia]# ls
[root@www112 mnesia]#
RabbitMQ集群出现过机器故障,网络异常等故障后,重启无法重新建立集群的终极解决方案的更多相关文章
- RabbitMQ 远程 IP 访问 解决办法 -摘自网络
刚刚安装的RabbitMQ-Server-3.3.5,并且也已经开启了Web管理功能,但是现在存在一个问题: 出于安全的考虑,guest这个默认的用户只能通过http://localhost:1567 ...
- 在Kubernetes集群中使用calico做网络驱动的配置方法
参考calico官网:http://docs.projectcalico.org/v2.0/getting-started/kubernetes/installation/hosted/kubeadm ...
- 在Hadoop集群中添加机器和删除机器
本文转自:http://www.cnblogs.com/gpcuster/archive/2011/04/12/2013411.html 无论是在Hadoop集群中添加机器和删除机器,都无需停机,整个 ...
- greenplum集群某台机器磁盘占用100%处理方式
一.问题描述 使用gpfdist往集群中导入大量数据, 一段时间后连接退出,集群无法连接 二.问题定位 使用如下命令查看: gpstate -s mdw-:gpadmin-[INFO]:- Segme ...
- Linux之为集群内的机器设定主机名
作业二:为集群内的机器设定主机名,利用/etc/hosts文件来解析自己的集群中所有的主机名,相应的,集群的配置应该改成使用主机名的方式 1.主机信息配置并解析 [root@localhost ~]# ...
- Dubbo入门到精通学习笔记(十五):Redis集群的安装(Redis3+CentOS)、Redis集群的高可用测试(含Jedis客户端的使用)、Redis集群的扩展测试
文章目录 Redis集群的安装(Redis3+CentOS) 参考文档 Redis 集群介绍.特性.规范等(可看提供的参考文档+视频解说) Redis 集群的安装(Redis3.0.3 + CentO ...
- 1.还不会部署高可用的kubernetes集群?看我手把手教你使用二进制部署v1.23.6的K8S集群实践(上)
公众号关注「WeiyiGeek」 设为「特别关注」,每天带你玩转网络安全运维.应用开发.物联网IOT学习! 本章目录: 0x00 前言简述 0x01 环境准备 主机规划 软件版本 网络规划 0x02 ...
- hadoop 集群 加入一个新的存储节点和删除一个计算节点需要刷新集群状态命令
加入一个新的存储节点和删除一个计算节点需要刷新集群状态命令 方式1:静态添加datanode,停止namenode方式 1.停止namenode 2.修改slaves文件,并更新到各个节点3.启动na ...
- AngularJS资源合集[备忘]【申明:来源于网络】
AngularJS资源合集[备忘][申明:来源于网络] 地址:http://blog.csdn.net/allgis/article/details/44646597
随机推荐
- ERROR:scala:Error:Object scala.runtime in compiler mirror not found
我的项目是sbt项目,今天早晨的时候还好好的,结果中午吃了个饭回来就特么的编译就报错了,真是闹心 报错截图: 解决方案: 删除idea的缓存文件 然后重新启动idea,重新下载jia包,在进行编译,就 ...
- idea 配置git
1.注册https://github.com 2. 3.填入信息完成
- JMETER-01
jmter安装 1.Linxu安装: 步骤:下载JMeter包-->解压包-->赋权限-->配置环境变量-->测试服务 1.下载:wget http://mirrors.hus ...
- IDEA外部工具配置-OpenJML篇
帮助文档 jetbrains帮助文档:https://www.jetbrains.com/help/idea/settings-tools-external-tools.html 使用external ...
- javascript高级程序设计第3版——第1Java章 DOM扩展
虽然DOM 为与XML 及HTML 文档交互制定了一系列核心API,但仍然有几个规范对标准的DOM进行了扩展.这些扩展中有很多原来是浏览器专有的,但后来成为了事实标准,于是其他浏览器也都提供了相同的实 ...
- 【转载】MessageFormat.format方法
MessageFormat.format方法实例 public static void main(String[] args) { String a= "aaa"; String ...
- 免费代理ip爬虫分享
分享一个某代理网站的免费代理ip的爬虫,直接复制到pycharm运行就可以了. 注意:爬取的代理ip有点坑,因为是免费的所以过期时间很快,可能1分钟后就会失效.并且在scrapy使用这些代理ip还会给 ...
- Unity录音
上周做过Unity录音,(不知道的可以到网上查找一下,代码挺多的),不过只能录制麦克风的声音,项目需要同时录制背景音和麦克风传进去的声音,经过探索,现已可以录制: 首先需要知道,即使用电脑录音,想录制 ...
- rebar3自动编译
功能:修改完代码可以自动编译加载到VM中 必须安装的软件: Linux: inotify 链接https://github.com/rvoicilas/inotify-tools/wiki 配置: ...
- php使用gearman进行任务分发
一.安装gearman 下载gearman源码包 1 https://launchpad.net/gearmand/+download 如: gearmand-1.1.12.tar.gz 下载php的 ...