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
随机推荐
- (2)OSi模型
osi七层模型 #(应用层,表示层,会话层) => 应用层 => 表达一个数据信息 # 传输层 port(端口) tcp/udp协议 硬件设备:四层交换机 四层路由器 # 网络层 ip协议 ...
- python 往mysql数据库中插入多条记录。
最近想写mysql库,用到insert into语句,如何一次性将多条记录插入库表中呢. MySQLdb提供了两个执行语句的方法:一个是execute(),另一个是executemany() exec ...
- Springboot 中配置文件的优先级和加载顺序
1. 若application.yml 和bootStrap.yml 在同一目录下,则bootStrap.yml 的加载顺序要高于application.yml,即bootStrap.yml 会优先 ...
- JVM垃圾回收(四)- GC算法:实现(1)
GC算法:实现 上面我们介绍了GC算法中的核心概念,接下来我们看一下JVM里的具体实现.首先必须了解的一个重要的事实是:对于大部分的JVM来说,两种不同的GC算法是必须的,一个是清理Young Gen ...
- Java多线程概念
1 多线程 1.1 什么是进程? 应用程序的一次运行产生进程. 为什么存在进程的概念? 1.2 什么是线程 参考:https://www.cnblogs.com/geeta/p/9474051.htm ...
- 记录一下小程序canvas
小程序canvas学习 效果图: .wxml <canvas style="width: 100vw; height: 100vh;" canvas-id="fir ...
- python 【pandas】读取excel、csv数据,提高索引速度
问题描述:数据处理,尤其是遇到大量数据且需要for循环处理时,需要消耗大量时间,如代码1所示.通过data['trip_time'][i]的方式会占用大量的时间 代码1 import time t0= ...
- Linux之nginx入门
nginx入门 详见可参考:https://www.cnblogs.com/tiger666/p/10239307.html?tdsourcetag=s_pctim_aiomsg 1. 常用的WEB框 ...
- 『高性能模型』Roofline Model与深度学习模型的性能分析
转载自知乎:Roofline Model与深度学习模型的性能分析 在真实世界中,任何模型(例如 VGG / MobileNet 等)都必须依赖于具体的计算平台(例如CPU / GPU / ASIC 等 ...
- JS数组遍历
1. forEach() 循环数组,不会改变元素,不会返回新数组 arr.foreach((value,index)=>{}) 2. map() 遍历数组,对每个元素进行处理,之后返回元素:会返 ...