欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

RabbitMQ集群部署,host方式

程序员文章站 2022-07-12 12:18:10
...

Docker主机 IP地址

172.19.184.202 rabbit1  rabbit1
172.19.184.201 rabbit2  rabbit2

第一步:获取RabbitMQ镜像

docker pull rabbitmq:management

第二步:启动MQ

rabbit1:
47.103.35.68(172.19.184.202)

rabbitmq集群建立需要解析主机名,因此需要一台内网DNS,存在以下记录(或者修改容器的hosts文件),我这里才用的是host方式

docker run -d --hostname rabbit1 --add-host=rabbit1:172.19.184.202 --add-host=rabbit2:172.19.184.201 --name rabbit1 -p 15672:15672 -p 5672:5672 -p 4369:4369 -p 5671:5671 -p 15671:15671 -p 25672:25672 -e RABBITMQ_DEFAULT_USER=admin  -e RABBITMQ_DEFAULT_PASS=password -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' docker.io/rabbitmq:management

参数说明:

-d
容器后台运行
--hostname rabbit1
容器的主机名为 rabbit1,容器内部的hostname
--add-host=rabbit1:172.19.184.202 
--add-host=rabbit2:172.19.184.201

修改容器内部的hosts,没有dns服务器的话就这么改
--name rabbit1
容器名为rabbit1,在宿主机上运行“docker ps”命令时显示的名称
--log-opt max-size=10m
日志文件单个最大10M
--log-opt max-file=3
日志文件最多保留3个
-p "4369:4369"
映射宿主机端口4369到容器端口4369,主机端口在前
-p "5671:5671"
略
-p "5672:5672"
略
-p "15671:15671"
略
-p "15672:15672"
略
-p "25672:25672"
略
-v /data/rabbitmq:/var/lib/rabbitmq:z
将宿主机目录/data/rabbitmq挂载到容器的/var/lib/rabbitmq目录。z是一个标记,在selinux环境下使用。
-e RABBITMQ_DEFAULT_USER=user01
设置rabbitmq默认用户为user01
-e RABBITMQ_DEFAULT_PASS=password01
设置rabbitmq默认密码为password01
-e RABBITMQ_ERLANG_COOKIE='rabbitcookie'
设置rabbitmq的cookie为“rabbitcookie”,可以自定义为其他文本,三个容器保持一致即可。
docker.io/rabbitmq:management
使用docker.io/rabbitmq:management这个镜像

进入到容器内部:

docker exec -it rabbit1 /bin/bash
rabbitmqctl change_password admin password123
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
rabbitmqctl list_users

rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
rabbitmqctl stop_app
rabbitmqctl reset
chmod 600 /var/lib/rabbitmq/.erlang.cookie 
rabbitmqctl start_app

在第二台服务器上安装mq

rabbit2:172.19.184.201

docker run -d --hostname rabbit2 --add-host=rabbit1:172.19.184.202 --add-host=rabbit2:172.19.184.201 --name rabbit2 -p 15672:15672 -p 5672:5672 -p 4369:4369 -p 5671:5671 -p 15671:15671 -p 25672:25672 -e RABBITMQ_DEFAULT_USER=admin  -e RABBITMQ_DEFAULT_PASS=password  -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' docker.io/rabbitmq:management

把rabbit2添加到集群(以内存节点方式加入)

docker exec -it rabbit2 /bin/bash

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram [email protected]
rabbitmqctl start_app

把rabbit2添加到集群(以磁盘方式加入)

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster [email protected]
rabbitmqctl start_app

 

相关标签: mq集群