rabbitMQ 集群的配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rabbitMQ 集群的配置相关的知识,希望对你有一定的参考价值。

rabbitMQ 集群的配置



参考文档:http://blog.csdn.net/woogeyu/article/details/51119101


环境说明


在两个不同的主机上创建两个节点主机IP,主机名如下

10.176.0.13 node1

10.176.0.19 node2



1.分别在两个主机上安装rabbitMQ(一个主机一个rabbitMQ),注意语言环境erlang和rabbitMQ的版本必须一致


2.集群的配置


 RabbitMQ集群中所有节点都是平等的,没有绝对的主次之分,每一个节点的配置信息都会在集群中进行同步。只有节点类型区别,节点类型有disk型和RAM型。分别对应磁盘和内存,disk节点可以持久化消息安全性较高、RAM节点存取速度快,但是不能持久化。一个集群中至少要有一个disk类型的节点,以便在所有节点宕机重启时将持久化队列中的消息进行持久化。

  问题说明: RabbitMQ要求在集群中至少有一个磁盘节点,所有其他节点可以是内存节点,当节点加入或者离开集群时,必须要将该变更通知到至少一个磁盘节点。如果集群中唯一的一个磁盘节点崩溃的话,集群仍然可以保持运行,但是无法进行其他操作(增删改查),直到节点恢复。 

解决方案:设置两个磁盘节点,至少有一个是可用的,可以保存元数据的更改。


  2.1安装准备,主机名之间互相解析,分别修改两台主机的hosts文件


     vim /etc/hosts  添加如下内容


      192.168.31.66 node1

      192.168.31.67 node2


  2.2同步 Erlang Cookie(节点之间是通过Erlang Cookie 文件通信Erlang Cookie是保证不同节点可以相互通信的密钥,来达到配置信息的同步)将任意一台的cookie文件或者内容替换到集群其他机器。最后确保文件权限为400


     查看node1节点的cookie值


      [[email protected] ~]# cat /var/lib/rabbitmq/.erlang.cookie 

PSNXAHYXQRPBKUVNYQCU


     关闭node2,将node1的cookie的值复制到node2节点


     [[email protected] ~]# rabbitmqctl  stop


     [[email protected] ~]# echo PSNXAHYXQRPBKUVNYQCU > /var/lib/rabbitmq/.erlang.cookie


     cookie值同步后,启动node2节点


     service rabbitmq-server start


   2.3将node1加入集群node2作为RAM类型节点


     rabbitmqctl stop_app


     rabbitmqctl reset


     rabbitmqctl join_cluster [email protected]  --ram


     rabbitmqctl start_app


   2.4查看集群的状态


     rabbitmqctl status


     rabbitmqctl cluster_status


3 访问任意管理端界面查看http://ip:15672 可查看集群信息

            



    


本文出自 “92868888” 博客,请务必保留此出处http://92868888.blog.51cto.com/12381417/1925945

以上是关于rabbitMQ 集群的配置的主要内容,如果未能解决你的问题,请参考以下文章

高可用RabbitMQ集群安装配置

Rabbitmq 相关介绍之单机集群配置

rabbitMQ 集群的配置

rabbitmq集群部署及配置

RabbitMq 集群配置

高可用RabbitMQ集群安装配置