docker安装rabbitmq集群部署(适合3.8.9版本以上),不同服务器

节点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集群 - 简书

你可能感兴趣的:(java,rabbitmq,docker,服务器,junit,数据结构)