节点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
7.安装完成后点击exchange会报500错误解决办法:
进入容器 docker exec -it rabbit(容器ID 或者 名称) bash
进入配置目录 cd /etc/rabbitmq/conf.d/ 执行命令
echo management_agent.disable_metrics_collector = false > management_agent.disable_metrics_collector.conf
退出容器 exit
重启服务 docker restart rabbit(容器ID 或者 名称)
参考: