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 即可。