Fork me on GitHub

RabbitMQ集群安装

首先参考上一篇文章【CentsOS原生RabbitMQ安装过程】在两到三台机器上先安装单独的RabbitMQ节点

修改一下hostname

1
2
3
4
[root@rnode1 ~]# vim /etc/hosts
172.16.20.110 rnode1
172.16.20.111 rnode2
172.16.20.112 rnode3

erlang节点之间通信需要相同的cookie文件,将其中一个机器上的cookie文件copy到另外两个机器

1
2
scp /var/lib/rabbitmq/.erlang.cookie rnode2:/var/lib/rabbitmq
scp /var/lib/rabbitmq/.erlang.cookie rnode3:/var/lib/rabbitmq

首先在rnode1上观察一下节点状态如下

1
2
3
4
5
6
7
[root@rnode1 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@rnode1
[{nodes,[{disc,[rabbit@rnode1]}]},
{running_nodes,[rabbit@rnode1]},
{cluster_name,<<"rabbit@rnode1">>},
{partitions,[]},
{alarms,[{rabbit@rnode1,[]}]}]

分别在rnode2、rnode3上执行以下命令使其与rnode1组成集群

1
2
3
4
5
6
[root@rnode2 ~]# rabbitmqctl stop_app
Stopping rabbit application on node rabbit@rnode2
[root@rnode2 ~]# rabbitmqctl join_cluster --ram rabbit@rnode1
Clustering node rabbit@rnode2 with rabbit@rnode1
[root@rnode2 ~]# rabbitmqctl start_app
Starting node rabbit@rnode2

随便选择一台集群观察节点状态发现集群已经搭建完毕

1
2
3
4
5
6
7
[root@rnode3 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@rnode3
[{nodes,[{disc,[rabbit@rnode1]},{ram,[rabbit@rnode3,rabbit@rnode2]}]},
{running_nodes,[rabbit@rnode2,rabbit@rnode1,rabbit@rnode3]},
{cluster_name,<<"rabbit@rnode1">>},
{partitions,[]},
{alarms,[{rabbit@rnode2,[]},{rabbit@rnode1,[]},{rabbit@rnode3,[]}]}]

安装过程中可能会出现如下问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@rnode1 ~]# rabbitmqctl status
Status of node rabbit@rnode1
Error: unable to connect to node rabbit@rnode1: nodedown

DIAGNOSTICS
===========

attempted to contact: [rabbit@rnode1]

rabbit@rnode1:
* connected to epmd (port 4369) on rnode1
* epmd reports: node 'rabbit' not running at all
no other nodes on rnode1
* suggestion: start the node

current node details:
- node name: 'rabbitmq-cli-01@rnode1'
- home dir: /var/lib/rabbitmq
- cookie hash: DGMyi0De4NLhiCnlJmHsTg==

此问题停止RabbitMQ的服务再重新启动即可解决

1
2
rabbitmq-server stop
rabbitmq-server -detached

 

posted @ 2019-06-18 09:10  石玉军  阅读(327)  评论(0编辑  收藏  举报