Rabbitmq集群的搭建
RabbitMQ集群的搭建
系統環境
三臺機器分別為centos6.6 64位
- vm61 192.168.1.61
- vm62 192.168.1.62
- vm63 192.168.1.63
安裝
由于RabbitMQ是由erlang寫的,所以需要erlang的運行環境,直接使用yum進行安裝
yum install erlang 安裝完erlang后,安裝RabbitMQ
rpm -ivh rabbitmq-server-3.5.3-1.noarch.rpm
三臺機器安裝完rabbitmq后,首先在vm61上啟動rabbitmq
service rabbitmq-server start 然后將vm61上的/var/lib/rabbitmq/.erlang.cookie中的內容復制到vm62和vm63上的/var/lib/rabbitmq/.erlang.cookie文件中即三臺服務器必須具有相同的cookie,如果不相同的話,無法搭建集群
配置
查看vm61上的集群的狀態
rabbitmqctl cluster_status 得到如下結果
Cluster status of node rabbit@vm61 ... [{nodes,[{disc,[rabbit@vm61]}]}, {running_nodes,[rabbit@vm61]}, {cluster_name,<"rabbit@localhost.localdomain">}, {partitions,[]}]
啟動vm62、vm63上的rabbitmq
service rabbitmq-server start 將vm62加入集群
rabbitmqctl stop_app rabbitmqctl reset rabbitmqctl join_cluster rabbit@vm61 rabbitmqctl start_app 將vm63加入集群
rabbitmqctl stop_app rabbitmqctl reset rabbitmqctl join_cluster rabbit@vm61 rabbitmqctl start_app
查看集群的狀態
rabbitmqctl cluster_status 得到如下結果
Cluster status of node rabbit@vm61 ... [{nodes,[{disc,[rabbit@vm61,rabbit@vm62,rabbit@vm63]}]}, {running_nodes,[rabbit@vm63,rabbit@vm62,rabbit@vm61]}, {cluster_name,<"rabbit@localhost.localdomain">}, {partitions,[]}] 說明集群創建成功
錯誤
- 如果3臺服務器的cookie不一致的話,會導致集群通信失敗,無法創建集群
-
如果出現如下問題的話
Clustering node rabbit@vm62 with rabbit@vm61 ... Error: unable to connect to nodes [rabbit@vm61]: nodedown DIAGNOSTICS
attempted to contact: [rabbit@vm61] rabbit@VMS00386:
-
unable to connect to epmd (port 4369) on VM61: nxdomain (non-existing domain) current node details:
- node name: 'rabbitmqctl-rabbit@vm62'
- home dir: /var/lib/rabbitmq
- cookie hash: 50YO3zK+HJHos0tab1vHjg== 則需要在每臺服務器上添加
vi /etc/hosts vm61 192.168.1.61 vm62 192.168.1.62 vm63 192.168.1.63 即可解決,問題原因為無法解析地址導致的
-
-
cluster搭建起來后若在web管理工具中rabbitmq_management的Overview的Nodes部分看到“Node statistics not available”的信息,說明在該節點上web管理插件還未啟用。直接在顯示提示信息的節點上運行
rabbitmq-plugins enable rabbitmq_management 即可。