docker部署rabbitmq集群,不同服务器进行集群配置

4 篇文章 0 订阅
3 篇文章 0 订阅

1、拉取镜像,启动单个rabbitmq容器

docker pull rabbitmq
docker run -d --name rabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq

  2、创建网络

docker network create mq-net

注意:3.8以上的mq不需要设置镜像策略;直接用Quorum类型队列代替 

3、先在单个启动的mq容器中获取一个cookie值,作为集群的cookie

docker exec -it rabbit cat /var/lib/rabbitmq/.erlang.cookie

4、创建一个文件,记录cookie

cd /home/mxy
# 创建cookie文件
touch .erlang.cookie
# 写入cookie 
echo "GIIKNSACLCUKKXCZEHQD" > .erlang.cookie
# 修改cookie文件的权限
chmod 600 .erlang.cookie

5、停止并删除当前的mq容器,重新搭建集群。 

docker rm -f rabbit

6、在/home/mxy目录新建一个配置文件 rabbitmq.conf

cd /home/mxy
# 创建文件
touch rabbitmq.conf

7、 配置rabbitmq.conf文件

loopback_users.guest = false  #禁用默认账号
listeners.tcp.default = 5672  #监听对外通信端口配置
cluster_formation.peer_discovery_backend = rabbit_peer_discovery_classic_config  #集群节点发现配置
cluster_formation.classic_config.nodes.1 = rabbit@rabbitmq1  #集群节点1
cluster_formation.classic_config.nodes.2 = rabbit@rabbitmq2  #集群节点2 多个节点就多加几行配置

8、启动服务1

docker run -d --name rabbitmq1 -e  RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 -p 4369:4369 -p 25672:25672 -v mq-plugins:/plugins --net mq-net --hostname rabbitmq1 -v /home/mxy/rabbitmq.conf:/etc/rabbitmq.conf -v /home/mxy/.erlang.cookie:/var/lib/rabbitmq/.erlang.cookie  --add-host rabbitmq2:服务2的ip --restart unless-stopped rabbitmq

9、启动服务2

docker run -d --name rabbitmq2 -e  RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 -p 4369:4369 -p 25672:25672 -v mq-plugins:/plugins --net mq-net --hostname rabbitmq2 -v /home/mxy/rabbitmq.conf:/etc/rabbitmq.conf -v /home/mxy/.erlang.cookie:/var/lib/rabbitmq/.erlang.cookie  --add-host rabbitmq1:服务1的ip --restart unless-stopped rabbitmq

10、从Docker上拉取的镜像是阉割版的,所以要手动安装Web插件。进入容器

docker exec -it 容器id /bin/bash

11、启动插件

rabbitmq-plugins enable rabbitmq_management

12、访问rabbitmq页面 

13、查看节点

14、使rabbitmq2加入rabbit@rabbitmq1节点

docker exec -it rabbitmq2 /bin/bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbitmq1
rabbitmqctl start_app

15、再次查看节点

16、测试在其中一个mq中添加队列另一个也可以看到

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值