rabbitmq重装之后无法加入原有cluster的bug解析
背景:
一台controller node,一台compute1节点
两台机器的host文件均已经进行hostname解析
两节点本已经加入了同一rabbitmq cluster
但controller node因为服务原因,还原至裸机状态,在yum安装rabbitmq-server.service之后,存在compute1节点无法加入到controller rabbitmq cluster的异常
相关异常如下
[root@compute1 ~]# rabbitmqctl join_cluster rabbit@controller
Clustering node rabbit@compute1 with rabbit@controller ...
Error: {cannot_start_mnesia,
{{shutdown,{failed_to_start_child,mnesia_kernel_sup,killed}},
{mnesia_sup,start,[normal,[]]}}}
[root@compute1 ~]# rabbitmqctl start_app
Starting node rabbit@compute1 ...
BOOT FAILED
===========
Error description:
{error,{inconsistent_cluster,"Node rabbit@compute1 thinks it's clustered with node rabbit@controller, but rabbit@controller disagrees"}}
Log files (may contain more information):
/var/log/rabbitmq/rabbit@compute1.log
/var/log/rabbitmq/rabbit@compute1-sasl.log
Stack trace:
[{rabbit_mnesia,check_cluster_consistency,,
[{file,"src/rabbit_mnesia.erl"},{line,}]},
{rabbit,'-start/0-fun-0-',,[{file,"src/rabbit.erl"},{line,}]},
{rabbit,start_it,,[{file,"src/rabbit.erl"},{line,}]},
{rpc,'-handle_call_call/6-fun-0-',,[{file,"rpc.erl"},{line,}]}]
Error: {error,{inconsistent_cluster,"Node rabbit@compute1 thinks it's clustered with node rabbit@controller, but rabbit@controller disagrees"}}
其中报错说明是compute1 node认为controller node节点是其cluster,但是controller并不是
同时还有如下的error报错
[root@compute1 ~]# rabbitmqctl join_cluster rabbit@controller
Clustering node rabbit@compute1 with rabbit@controller ...
Error: {cannot_start_mnesia,
{{shutdown,{failed_to_start_child,mnesia_kernel_sup,killed}},
{mnesia_sup,start,[normal,[]]}}}
因为controller node是新安装,其icook信息也复制过去。compute1 node也执行stop_app,故应该推测应该是compute1 node之前残留的cluster信息,导致认证失败
在网上查询到因为mnesia的信息残留,故会认证失败。
其目录为/var/lib/rabbitmq/mnesia
mv /var/lib/rabbitmq/mnesia /tmp
然后再将controller节点的icook节点scp至compute1节点
重新使用 rabbitmqctl join_cluster rabbit@controller
完成cluster的加入
日常很难遇到,但在实验环境中很容易遇到,特此记录,以备后需
rabbitmq重装之后无法加入原有cluster的bug解析的更多相关文章
- RabbitMQ 中的分布式,普通 cluster 模式的构建
RabbitMQ 如何做分布式 前言 集群配置方案 cluster 普通模式 镜像模式 federation shovel 节点类型 RAM node Disk node 集群的搭建 1.局域网配置 ...
- rabbitmq重装依赖的erlang 要注意
今天安装的erlang和rabbitmq版本不匹配导致出现各种问题,在使用正确版本安装后出现问题,在日志中找到报错信息: {"init terminating in do_boot" ...
- RabbitMQ 高可用集群搭建及电商平台使用经验总结
面向EDA(事件驱动架构)的方式来设计你的消息 AMQP routing key的设计 RabbitMQ cluster搭建 Mirror queue policy设置 两个不错的RabbitMQ p ...
- rabbitmq Clustering Guide--官方
官方文档地址:http://www.rabbitmq.com/documentation.html A RabbitMQ broker is a logical grouping of one or ...
- 消息队列的使用 RabbitMQ
RabbitMQ 是一款开源且比较流行的消息中间件.但用起来还是比较麻烦,有人封装了一层, 这就是 EasyNetQ . 一.安装 1.安装 Erlang: http://www.erlang.org ...
- CentOS下 RabbitMQ单机安装配置
CentOS RabbitMQ rpm 安装方法: 系统环境:CentOS6IP地址:10.100.62.41 1.erlang安装: erlang下载地址: http://www.rabbitmq. ...
- RabbitMQ 高可用集群搭建
面向EDA(事件驱动架构)的方式来设计你的消息 AMQP routing key的设计 RabbitMQ cluster搭建 Mirror queue policy设置 两个不错的RabbitMQ p ...
- 消息中间件的研究(二) RabbitMQ应用场景分析
分析一下六个场景下RabbitMQ的应用: 1.爬虫 2.智能家居云平台 3.电子商务系统 4.实时监控系统 5.海量日志的分布式处理 6. 智能交通管控平台中数据分析子系统 1.爬虫 ...
- (转)RabbitMQ消息队列(三):任务分发机制
在上篇文章中,我们解决了从发送端(Producer)向接收端(Consumer)发送“Hello World”的问题.在实际的应用场景中,这是远远不够的.从本篇文章开始,我们将结合更加实际的应用场景来 ...
随机推荐
- 解决ionic在Android和iOS的一些样式上的冲突
//设置默认返回按钮的文字 $ionicConfigProvider.backButton.previousTitleText(false).text('返回'); // 设置全局 $http 超时 ...
- ASP.NET MVC Bundling and RequireJS
关于ASP.NET MVC Bundling and RequireJS的取舍问题,最近比较困惑,我希望有一种方式可以结合两者的优点.作为.NET程序员,难道你没有过这方面的困惑吗? 因为我感觉各自都 ...
- java怎么处理json数据
json = new JSONObject(data); int which = json.optInt("which", -1); String label = json.opt ...
- 5.VBS的一些约定,提高可读性
1.变量命名约定 2.变量作用域 1)过程级,在事件中,函数或者子过程中 2)Script级,在head部分 原则,定义尽量小的作用域 3.在某个过程开头应该包括这些注释
- HTML5+CSS3实现的响应式垂直时间轴
<!DOCTYPE HTML><html><head><meta charset="utf-8"><meta name=&qu ...
- 用CSS3实现无限循环的无缝滚动
有时候在页面的某个模块中,需要无限循环的滚动一些消息.那么如果我们用js实现无缝衔接滚动的思路是什么呢(比如我们这个模块是向上滚动的)? 克隆A一份完全一样的数据B放在原数据A的后面: 使用setIn ...
- Android studio出现Error:Unable to tunnel through proxy. Proxy returns "HTTP/1.1 400 Bad Reques的解决办法
最近更新了一下Android Studio,在导入新项目之后出现Error:Unable to tunnel through proxy. Proxy returns "HTTP/1.1 4 ...
- H3CNE实验:Comware基本命令操作
第1步:Comware命令视图及切换操作 <H3C>system-view System View: return to User View with Ctrl+Z. [H3C]quit ...
- 关于js中的表单事件
表单结构如下所示: <form > <input type="text" name="txt" id="txt" valu ...
- 【Stack Overflow -- 原创加工、原创整理、生产实战】-- 深度复制
一.说明 1.本程序的核心代码不是我原创的,是我在Stack Overflow上搜集后加工出来的,原作者已忘记了~ 2.这段程序是我在上海携程(2014年左右)上班时整理并在生产环境应用的,先后经历了 ...