节点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集群中剔除某个节点
首先将要移除的节点停机
rabbitmqctlforget_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 或者 名称)
参考:
https://www.jb51.net/article/229503.htm
Docker多台主机安装RabbitMQ集群 - 简书