1. 程式人生 > >rabbitMQ 集群的配置

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 集群的配置