节点1
docker run -d --hostname rabbit_host1 --name rabbitmq1 \
--add-host=rabbit_host1:124.70.179.58 \
--add-host=rabbit_host2:123.60.140.214 \
-p 4369:4369 \
-p 15672:15672 \
-p 5672:5672 \
-p 25672:25672 \
-e RABBITMQ_NODENAME=rabbit \
-e RABBITMQ_DEFAULT_USER=hub \
-e RABBITMQ_DEFAULT_PASS=hub20220410 \
--privileged=true \
--restart=always \
-v /usr/docker/rabbitmq/1/lib:/var/lib/rabbitmq \
rabbitmq
节点2
docker run -d --hostname rabbit_host2 --name rabbitmq2 \
--add-host=rabbit_host1:124.70.179.58 \
--add-host=rabbit_host2:123.60.140.214 \
-p 4369:4369 \
-p 15672:15672 \
-p 5672:5672 \
-p 25672:25672 \
-e RABBITMQ_NODENAME=rabbit \
-e RABBITMQ_DEFAULT_USER=hub \
-e RABBITMQ_DEFAULT_PASS=hub20220410 \
--privileged=true \
--restart=always \
-v /usr/docker/rabbitmq/2/lib:/var/lib/rabbitmq \
rabbitmq
1.复制节点1的/usr/docker/rabbitmq/1/lib文件夹到节点2的rabbitmq-back文件夹内
2.ls -a /usr/docker/rabbitmq-back/lib/ 在节点2的服务器上查看有没有.erlang.cookie文件
3.chmod 400 /usr/docker/rabbitmq-back/lib/.erlang.cookie? 修改权限
4.docker cp /usr/docker/rabbitmq-back/lib/.erlang.cookie rabbitmq2:/var/lib/rabbitmq? 拷贝到容器里
5.重启rabbitmq容器? docker restart 容器名
6.rabbitmq集群中剔除某个节点
首先将要移除的节点停机
rabbitmqctl??forget_cluster_node rabbit@rabbit_host2
7.查看集群状态信息: rabbitmqctl cluster_status
5.节点?配置集群 ?
docker exec -it rabbitmq1 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
rabbitmq-plugins enable rabbitmq_management 需要开启web管理页面
exit
6.节点?加?集群,--ram是以内存?式加?,忽略该参数默认为磁盘节点。
docker exec -it rabbitmq2 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbit_host1
rabbitmqctl start_app
rabbitmq-plugins enable rabbitmq_management 需要开启web管理页面
exit
参考:
https://www.jb51.net/article/229503.htm
Docker多台主机安装RabbitMQ集群 - 简书
|