linux中使用docker完成rabbitmq多机集群部署
单机rabbitmq部署:https://www.cnblogs.com/hanfengyeqiao/p/17859693.html
机器1:a.a.a.a(IP地址)
机器2:b.b.b.b(IP地址)
两台机器需要提前开放防火墙相关的端口:15672,5672,4369,25672等
1、现在两台机器都需要操作:安装docker环境,并检查是否能正常更新镜像,如果有延迟需要切换成国内的镜像地址。
设置阿里云镜像源地址:
cd /etc/docker
ls
touch daemon.json
vim daemon.json
{
"registry-mirrors": ["https://gjw6x2qt.mirror.aliyuncs.com"]
}
systemctl daemon-reload
systemctl restart docker
2、下载rabbitmq镜像(可以下载合适自己的镜像版本)
docker pull docker.io/rabbitmq:3.7
3、提前做好文件权限配置(两台机器都需要执行)ps:LleLHxuTQBrxgR4VnP03Q7 这个可以自定义,只要保持两台机器一致即可
mkdir -p /data/rabbitmq_cluster/node/{data,conf,log}
chmod -R 777 /data/rabbitmq_cluster/node
cat << EOF >/data/rabbitmq_cluster/node/data/.erlang.cookie
LleLHxuTQBrxgR4VnP03Q7
EOF
chmod -R 600 /data/rabbitmq_cluster/node/data/.erlang.cookie
4、在机器1启动队列命令(账号密码:admin/123456,ps:如果有多台机器:需要在命令中添加node2、node3等)
docker run -d --name rabbitmq --restart=always --hostname node1 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=123456 -e RABBITMQ_DEFAULT_VHOST=my_vhost --privileged=true --add-host node2:b.b.b.b -v /data/rabbitmq_cluster/node/data:/var/lib/rabbitmq -v /data/rabbitmq_cluster/node/log:/var/log/rabbitmq -p 4369:4369 -p 5672:5672 -p 15672:15672 -p 25672:25672 docker.io/rabbitmq:3.7
5、在机器2启动队列命令(账号密码:admin/123456,ps:如果有多台机器:需要在命令中添加node1、node3等)
docker run -d --privileged --name rabbitmq --restart=always --hostname node2 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=123456 -e RABBITMQ_DEFAULT_VHOST=my_vhost --privileged=true --add-host node1:a.a.a.a -v /data/rabbitmq_cluster/node/data:/var/lib/rabbitmq -v /data/rabbitmq_cluster/node/log:/var/log/rabbitmq -p 4369:4369 -p 5672:5672 -p 15672:15672 -p 25672:25672 docker.io/rabbitmq:3.7
#开启队列镜像模式
6、在机器1执行
docker exec -it rabbitmq /bin/bash
rabbitmq-plugins enable rabbitmq_management
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
exit
7、在机器2执行命令(如果有多台机器,机器3等 也执行相同的代码)
docker exec -it rabbitmq bash
rabbitmq-plugins enable rabbitmq_management
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@node1
rabbitmqctl start_app
exit
8、浏览器访问http://a.a.a.a:15672和http://b.b.b.b:15672 就能看到操作界面了,至此,集群模式部署完成。
9、在任意一个节点登录操作界面,policy模式配置镜像队列 ps:根据自己实际需要进行配置
10、验证:在任意节点创建队列并发送一条消息,然后停掉当前节点,登录其他节点可接收这个队列的消息。