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