0x01 环境
OS : centos7.2
docker : 1.13.1
rabbitmq : 3.6.15-management
PC1 hostname : dev01
PC2 hostname : dev02
0x02 启动rabbitmq docker镜像
PC1,启动主镜像01:
sudo docker run -tid --name rabbitmq01 -p 4369:4369 -p 5672:5672 -p 15672:15672 -p 25672:25672 --net="host" -e RABBITMQ_NODENAME=rabbitmq01 -e RABBITMQ_ERLANG_COOKIE='ABCDEFG' rabbitmq:3.6.15-management
PC2,启动从镜像02:
sudo docker run -tid --name rabbitmq02 -p 4369:4369 -p 5672:5672 -p 15672:15672 -p 25672:25672 --net="host" -e RABBITMQ_NODENAME=rabbitmq02 -e RABBITMQ_ERLANG_COOKIE='ABCDEFG' rabbitmq:3.6.15-management
0x03 RabbitMQ节点加入到集群
在PC1,进入主镜像的bash:
[test@dev01 ~]$ sudo docker exec -it rabbitmq01 bash
root@dev01:/# rabbitmqctl stop_app
Stopping rabbit application on node rabbitmq01@dev01
root@dev01:/# rabbitmqctl reset
Resetting node rabbitmq01@dev01
root@dev01:/# rabbitmqctl start_app
Starting node rabbitmq01@dev01
root@dev01:/# rabbitmqctl cluster_status
Cluster status of node rabbitmq01@dev01
[{nodes,[{disc,[rabbitmq01@dev01]}]},
{running_nodes,[rabbitmq01@dev01]},
{cluster_name,<<"[email protected]">>},
{partitions,[]},
{alarms,[{rabbitmq01@dev01,[]}]}]
在PC2:
[test@dev02 ~]$ sudo docker exec rabbitmq02 bash -c "rabbitmqctl stop_app && rabbitmqctl reset && rabbitmqctl join_cluster --ram rabbitmq01@dev01 && rabbitmqctl start_app"
Stopping rabbit application on node rabbitmq02@dev02
Resetting node rabbitmq02@dev02
Clustering node rabbitmq02@dev02 with rabbitmq01@dev01
Starting node rabbitmq02@dev02
备注:
1. rabbitmq02是从镜像名字,rabbitmq01@dev01是在主镜像的bash里面执行rabbitmqctl cluster_status命令,显示的running_nodes的名字。
2. rabbitmqctl join_cluster --ram代表的是内存模式,可以换成磁盘模式(默认)。切换模式通过如下方式,进入镜像bash后,使用如下命令:
# rabbitmqctl stop_app
# rabbitmqctl change_cluster_node_type disc
# rabbitmqctl start_app
0x04 查看集群状态
如下显示,running_nodes有两个节点说明添加成功了。
[test@dev01 ~]$ sudo docker exec rabbitmq01 bash -c "rabbitmqctl cluster_status"
Cluster status of node rabbitmq01@dev01
[{nodes,[{disc,[rabbitmq01@dev01]},{ram,[rabbitmq02@dev02]}]},
{running_nodes,[rabbitmq02@dev02,rabbitmq01@dev01]},
{cluster_name,<<"[email protected]">>},
{partitions,[]},
{alarms,[{rabbitmq02@dev02,[]},{rabbitmq01@dev01,[]}]}]
参考:
https://www.jianshu.com/p/85543491ab00
https://www.cnblogs.com/vipstone/p/9362388.html
https://note.youdao.com/share/?id=99e09d2c3a320b773767699c760c1219&type=note#/