docker部署rabbitmq集群

主机

192.168.1.125 h3 rabbit1
192.168.1.126 h4 rabbit2
192.168.1.14 h6 rabbit3

宿主机操作

mkdir /rabbitmq/data -p
touch /rabbitmq/{rabbitmq.conf, hosts} 
vim /rabbitmq/hosts

192.168
.1.125 h3 rabbit1 192.168.1.126 h4 rabbit2 192.168.1.14 h6 rabbit3
vim /rabbitmq/rabbitmq.conf   # 如果使用默认端口就不需要创建和修改这个文件了   或者使用 -e NODE_PORT=11111 来指定listeners.tcp.default端口  // management.tcp.port 没有找到这个变量名
loopback_users.guest = false
listeners.tcp.default = 11111
management.tcp.port = 22222

从hub.docker.com上找容器, 默认的latest不包含web界面

docker pull rabbitmq:3.8.3-management

h3宿主机上创建容器

docker run -d --network=host --name rabbit1 -v /etc/localtime:/etc/localtime:ro -v /rabbitmq/data:/var/lib/rabbitmq -v /rabbitmq/hosts:/etc/hosts  -v /rabbitmq/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=passwd 479479d8e188

h4 h6宿主机上创建容器

docker run -d --network=host --name rabbit2 -v /etc/localtime:/etc/localtime:ro -v /rabbitmq/data:/var/lib/rabbitmq -v /rabbitmq/hosts:/etc/hosts -v /rabbitmq/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf -e RABBITMQ_ERLANG_COOKIE='rabbitcookie'   479479d8e188

docker run -d --network=host --name rabbit3 -v /etc/localtime:/etc/localtime:ro -v /rabbitmq/data:/var/lib/rabbitmq -v /rabbitmq/hosts:/etc/hosts -v /rabbitmq/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf -e RABBITMQ_ERLANG_COOKIE='rabbitcookie'   479479d8e188

设置rabbit2节点加入集群

docker exec -it rabbit2 /bin/bash

rabbitmqctl stop_app

rabbitmqctl reset

rabbitmqctl join_cluster rabbit@h3

rabbitmqctl start_app

exit

设置rabbit3节点加入集群

docker exec -it rabbit3 bash

rabbitmqctl stop_app

rabbitmqctl reset

rabbitmqctl join_cluster --ram rabbit@h3

rabbitmqctl start_app

exit

参数“--ram”表示设置为内存节点,默认为磁盘节点, 做的集群所以一个设置磁盘节点,一个设置内存节点, 内存节点读取快,磁盘节点安全

查询集群状态

rabbitmqctl cluster_status

故障节点的处理

docker exec -it rabbit2 /bin/bash

rabbitmqctl stop

#在一个正常的节点上移除有问题的节点

rabbitmqctl  -n rabbit@h3 forget_cluster_node rabbit@h4
原文地址:https://www.cnblogs.com/liuYGoo/p/12575038.html