使用docker快速部署rabbitmq单机和集群

环境准备

节点名称 ip地址
node1 192.168.130.20
node2 192.168.130.19
node3 192.168.130.21

安装docker

修改host(每个节点都修改)

第一个名称为主机的名称 第二个是搭建集群用到的名称(–hostname)

192.168.130.20   rq-node1
192.168.130.19   rq-node2
192.168.130.21   rq-node3

安装rabbitmq单机

mkdir -p /root/rabbitm_sg/data
docker run -d --network=host \
--hostname rq-node --name rq-node \
-v /root/rabbitmq_sg/data:/var/lib/rabbitmq \
-p 15673:15672 -p 5673:5672 \
-e RABBITMQ_ERLANG_COOKIE='helloCookie' \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin1234 \
rabbitmq:3.7-management

安装rabbitmq集群

创建目录(每个节点)

mkdir -p /root/rabbitmq/data

启动

node1


docker run -d --network=host \
--hostname rq-node1 --name rq-node1 \
-v /root/rabbitmq/data:/var/lib/rabbitmq \
-p 15672:15672 -p 5672:5672 \
-e RABBITMQ_ERLANG_COOKIE='helloCookie' \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin1234 \
rabbitmq:3.7-management

node2

docker run -d --network=host \
--hostname rq-node2 --name rq-node2 \
-v /root/rabbitmq/data:/var/lib/rabbitmq \
-p 15672:15672 -p 5672:5672 \
-e RABBITMQ_ERLANG_COOKIE='helloCookie' \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin1234 \
rabbitmq:3.7-management

node3

docker run -d --network=host \
--hostname rq-node3 --name rq-node3 \
-v /root/rabbitmq/data:/var/lib/rabbitmq \
-p 15672:15672 -p 5672:5672 \
-e RABBITMQ_ERLANG_COOKIE='helloCookie' \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin1234 \
rabbitmq:3.7-management

RABBITMQ_ERLANG_COOKIE 需要保持一致 内容任意(集群同步需要)

加入集群

node1

docker exec -it rq-node1 sh
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app

node2

docker exec -it rq-node2 sh
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rq-node1
rabbitmqctl start_app

node3

扫描二维码关注公众号,回复: 13068845 查看本文章
docker exec -it rq-node3 sh
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rq-node1
rabbitmqctl start_app
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

检查集群状态

进入容器 执行以下命令

rabbitmqctl cluster_status

也可以用浏览器打开某个节点:http://192.168.130.20:15672
输入用户名密码(上面设置的)登录后查看Nodes

猜你喜欢

转载自blog.csdn.net/kk3909/article/details/111938110