Docker搭建RabbitMQ集群(镜像模式)

本文档详细介绍了如何使用Docker在桥接网络中创建并配置RabbitMQ集群,包括创建网络、拉取镜像、设置主机名、启动容器、启用管理页面、节点间加入集群及配置镜像队列。通过Erlang Cookie实现节点间的认证,通过设置镜像队列策略确保数据高可用。最后,展示了检查集群状态和更改节点存储类型的方法。
摘要由CSDN通过智能技术生成

一、创建桥接网络

docker network create rabbitmq_net

二、拉取镜像

docker pull rabbitmq
docker pull haproxy

#查看镜像
docker images rabbitmq
docker images haproxy

三、配置主机名

 vi  /etc/hosts
 
192.168.1.20 rabbitmq01
192.168.1.20 rabbitmq02
192.168.1.20 rabbitmq03

测试主机名:
ping rabbitmq01

四、创建容器


docker run -d --name=rabbitmq01 -p 5673:5672 -p 15673:15672  \
-e RABBITMQ_NODENAME=rabbitmq01 -e RABBITMQ_ERLANG_COOKIE='meetyou'  \
-h rabbitmq01  -e RABBITMQ_DEFAULT_USER=meetyou \
-e RABBITMQ_DEFAULT_PASS=2019Meetyou  \
--net=rabbitmq_net rabbitmq:latest

docker run -d --name=rabbitmq02 -p 5674:5672 -p 15674:15672 \
-e RABBITMQ_NODENAME=rabbitmq02 -e RABBITMQ_ERLANG_COOKIE='meetyou'  \
-h rabbitmq02  -e RABBITMQ_DEFAULT_USER=meetyou \
-e RABBITMQ_DEFAULT_PASS=2019Meetyou \
--net=rabbitmq_net rabbitmq:latest

docker run -d --name=rabbitmq03 -p 5675:5672 -p 15675:15672 \
-e RABBITMQ_NODENAME=rabbitmq03 -e RABBITMQ_ERLANG_COOKIE='meetyou'  \
-h rabbitmq03  -e RABBITMQ_DEFAULT_USER=meetyou \
-e RABBITMQ_DEFAULT_PASS=2019Meetyou \
--net=rabbitmq_net rabbitmq:latest

  • RABBITMQ_ERLANG_COOKIE:通过Erlang Cookie,相当于共享秘钥的概念,长度任意,只要所有容器都一致即可。
  • -h: 设置容器hostname名称
  • –net: 设置所属网络

进入容器,启动管理页面

docker exec -it rabbitmq01 /bin/bash
rabbitmq-plugins enable rabbitmq_management
 exit
docker exec -it rabbitmq02 /bin/bash
rabbitmq-plugins enable rabbitmq_management
exit
docker exec -it rabbitmq03 /bin/bash
rabbitmq-plugins enable rabbitmq_management
exit

访问MQ地址测试:

http://localhost:15673
http://localhost:15674
http://localhost:15675

五、salve加入集群操作

(注意做这个步骤的时候:需要配置/etc/hosts必须相互能够寻地到 我们已通过-h指定hostname)rabbitmq02、rabbitmq03容器(docker exec -it 容器id /bin/bash),执行一下:

rabbitmqctl stop_app
rabbitmqctl join_cluster --ram rabbitmq01@rabbitmq01
//(--ram:内存存储方式,默认磁盘存储) 
rabbitmqctl start_app

移动节点
rabbitmqctl forget_cluster_node rabbitmq02@rabbitmq02

Removing node rabbitmq02@rabbitmq02 from cluster …

六、配置镜像队列

//设置镜像队列策略(在任意一个节点上执行)
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

*将所有队列设置为镜像队列,即队列会被同步复制到各个节点,RabbitMQ高可用集群就已经搭建好了,我们可以重启服务,查看队列是否在从节点同步。

查询集群状态

rabbitmqctl cluster_status

更改节点类型(内存型或磁盘型)


rabbitmqctl stop_app
#磁盘存储
rabbitmqctl change_cluster_node_type disc
#内存存储
rabbitmqctl change_cluster_node_type ram
rabbitmqctl start_app
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值