- 分别修改三台服务器主机名
# 第一个节点
[root@host0202 admin]# vi /etc/hostname
host0202
# 第二个节点
[root@host0203 admin]# vi /etc/hostname
host0203
# 第三个节点
[root@host0204 admin]# vi /etc/hostname
host0204
- 分别修改三台服务器hosts文件
# 第一个节点
[root@host0202 admin]# vi /etc/hosts
192.168.0.202 host0202
192.168.0.203 host0203
192.168.0.204 host0204
# 第二个节点
[root@host0203 admin]# vi /etc/hosts
192.168.0.202 host0202
192.168.0.203 host0203
192.168.0.204 host0204
# 第三个节点
[root@host0204 admin]# vi /etc/hosts
192.168.0.202 host0202
192.168.0.203 host0203
192.168.0.204 host0204
- 统一三台服务器的erlang.cookie,在第一台(host0202)执行以下操作(如果你是跟我一样直接克隆的虚拟机那么这一步可以省略)
[root@host0202 admin]# cd /var/lib/rabbitmq/
[root@host0202 rabbitmq]# ls -al
total 8
drwxr-xr-x. 3 rabbitmq rabbitmq 42 Dec 28 18:29 .
drwxr-xr-x. 27 root root 4096 Dec 28 18:23 ..
-r--------. 1 rabbitmq rabbitmq 20 Dec 28 00:00 .erlang.cookie
drwxr-x---. 4 rabbitmq rabbitmq 104 Dec 28 21:39 mnesia
[root@host0202 rabbitmq]# scp .erlang.cookie root@host0203:/var/lib/rabbitmq/
[root@host0202 rabbitmq]# scp .erlang.cookie root@host0204:/var/lib/rabbitmq/
- 分别在三台服务器中重启RabbitMQ、Erlang虚拟机
# 第一个节点
[root@host0202 rabbitmq]# rabbitmq-server -detached
# 第二个节点
[root@host0203 rabbitmq]# rabbitmq-server -detached
# 第三个节点
[root@host0204 rabbitmq]# rabbitmq-server -detached
- 将第二个节点加入第一个节点
[root@host0203 rabbitmq]# rabbitmqctl stop_app
Stopping rabbit application on node rabbit@host0203 ...
[root@host0203 rabbitmq]# rabbitmqctl reset
Resetting node rabbit@host0203 ...
[root@host0203 rabbitmq]# rabbitmqctl join_cluster rabbit@host0202
Clustering node rabbit@host0203 with rabbit@host0202
[root@host0203 rabbitmq]# rabbitmqctl start_app
Starting node rabbit@host0203 ...
- rabbitmqctl stop_app:关闭RabbitMQ不关闭Erlang虚拟机
- rabbitmqctl stop:关闭RabbitMQ和Erlang虚拟机
- 将第三个节点加入第二个节点
[root@host0204 rabbitmq]# rabbitmqctl stop_app
Stopping rabbit application on node rabbit@host0204 ...
[root@host0204 rabbitmq]# rabbitmqctl reset
Resetting node rabbit@host0204 ...
[root@host0204 rabbitmq]# rabbitmqctl join_cluster rabbit@host0203
Clustering node rabbit@host0204 with rabbit@host0203
[root@host0204 rabbitmq]# rabbitmqctl start_app
Starting node rabbit@host0204 ...
- 查看集群状态(任意一个节点都行)
[root@host0202 rabbitmq]# rabbitmqctl cluster_status
- 或者登陆RabbitMQ管理后台查看:Overview -> Nodes
- 如果配置完后台登陆不了,重新创建用户,具体参考我的安装RabbitMQ相关教程
- 解除集群节点
# 第一种方式:在第三个节点执行:
[root@host0204 rabbitmq]# rabbitmqctl stop_app
[root@host0204 rabbitmq]# rabbitmqctl reset
[root@host0204 rabbitmq]# rabbitmqctl start_app
[root@host0204 rabbitmq]# rabbitmqctl cluster_status
# 第二种方式:在第一个节点执行(该方式执行前需先stop掉要解除的节点):
[root@host0202 rabbitmq]# rabbitmqctl forget_cluster_node rabbit@host0204