其他分享
首页 > 其他分享> > Docker搭建RabbitMQ集群(镜像模式)

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

作者:互联网

一、创建桥接网络

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

进入容器,启动管理页面

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

标签:RABBITMQ,rabbitmq01,rabbitmqctl,rabbitmq,RabbitMQ,镜像,docker,Docker,rabbitmq02
来源: https://blog.csdn.net/yanyuan_1118/article/details/115715693