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值


      [root@node1 ~]# cat /var/lib/rabbitmq/.erlang.cookie 

PSNXAHYXQRPBKUVNYQCU


     關閉node2,將node1的cookie的值複製到node2節點


     [root@node2 ~]# rabbitmqctl  stop


     [root@node2 ~]# 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 rabbit@node1  --ram


     rabbitmqctl start_app


   2.4查看集羣的狀態


     rabbitmqctl status


     rabbitmqctl cluster_status


3 訪問任意管理端界面查看http://ip:15672 可查看集羣信息

            



    


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章