RabbitMQ笔记(三)-基于Docker安装RabbitMQ集群

痛定思痛。 2022-03-27 11:26 315阅读 0赞

RabbitMQ的镜像选择是rabbitmq:3.6.15-management

step1. 依次启动三个RabbitMQ的容器

RABBITMQ_ERLANG_COOKIE是配置erlang.cookie的值

.erlang.cookie是erlang实现分布式的必要文件,erlang分布式的每个节点上要保持相同的.erlang.cookie文件,同时保证文件的权限是400。

具体的文件路径在 /var/lib/rabbitmq/.erlang.cookie

  1. docker run -d --hostname rabbit1 --name myrabbit1 -p 8101:15672 -p 8201:5672 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.6.15-management
  2. docker run -d --hostname rabbit2 --name myrabbit2 -p 8102:15672 -p 8202:5672 --link myrabbit1:rabbit1 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.6.15-management
  3. docker run -d --hostname rabbit3 --name myrabbit3 -p 8103:15672 -p 8203:5672 --link myrabbit1:rabbit1 --link myrabbit2:rabbit2 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.6.15-management

step2. 加入RabbitMQ节点到集群

  1. 设置节点1
  2. docker exec -it myrabbit1 bash
  3. rabbitmqctl stop_app
  4. rabbitmqctl reset
  5. rabbitmqctl start_app
  6. exit
  7. 设置节点2,加入到集群:
  8. docker exec -it myrabbit2 bash
  9. rabbitmqctl stop_app
  10. rabbitmqctl reset
  11. rabbitmqctl join_cluster --ram rabbit@rabbit1
  12. rabbitmqctl start_app
  13. exit
  14. 参数“--ram”表示设置为内存节点,忽略次参数默认为磁盘节点。
  15. 设置节点3,加入到集群:
  16. docker exec -it myrabbit3 bash
  17. rabbitmqctl stop_app
  18. rabbitmqctl reset
  19. rabbitmqctl join_cluster --ram rabbit@rabbit1
  20. rabbitmqctl start_app
  21. exit

安装完成,使用docker ps查看

  1. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  2. 6e40e86437fa rabbitmq:3.6.15-management "docker-entrypoint..." 7 days ago Up 5 days 4369/tcp, 5671/tcp, 15671/tcp, 25672/tcp, 0.0.0.0:8203->5672/tcp, 0.0.0.0:8103->15672/tcp myrabbit3
  3. 3def6fca813d rabbitmq:3.6.15-management "docker-entrypoint..." 7 days ago Up 5 days 4369/tcp, 5671/tcp, 15671/tcp, 25672/tcp, 0.0.0.0:8202->5672/tcp, 0.0.0.0:8102->15672/tcp myrabbit2
  4. 28b198211066 rabbitmq:3.6.15-management "docker-entrypoint..." 7 days ago Up 5 days 4369/tcp, 5671/tcp, 15671/tcp, 25672/tcp, 0.0.0.0:8201->5672/tcp, 0.0.0.0:8101->15672/tcp myrabbit1

或者访问任意一个管理页面

![1545469038410][]

step3. 配置集群同步信息

直接在管理页面配置

点击Admin -> Virtual Hosts

添加一个虚拟主机cluster2

![1545469241489][1545469038410]

再点击虚拟主机配置用户

![1545469268900][1545469038410]

点击Policies,配置高可用策略

![1545469711325][1545469038410]

ha-mode : all-所有节点互为镜像,exactly-指定镜像节点的数量,nodes-指定具体需要镜像的节点

ha-params:ha-mode=all,缺省,不需要填

​ ha-mode=exactly,指定几个节点为一组镜像节点

​ ha-mode=nodes,指定具体的节点,string类型

ha-sync-mode: 镜像队列中消息的同步方式,有效值为automatic,manually

这里指定了2个节点为镜像节点

回到Exchanges页面看到新增了默认的exchange

在这里插入图片描述

在Queues页面添加一个queue

在这里插入图片描述
查看该queue

在这里插入图片描述

可以看到在rabbit3有一份镜像

回到服务器停止rabbit1再次查看队列test

在这里插入图片描述

可以看到之前的镜像节点变为了主节点,而rabbit2变为了镜像节点

欢迎关注微信交流
在这里插入图片描述

[1545469038410]:

发表评论

表情:
评论列表 (有 0 条评论,315人围观)

还没有评论,来说两句吧...

相关阅读

    相关 RabbitMQ安装

    一、准备两台虚拟机 1、设置一台的别名为A,:`vi /etc/hostname` 2、设置另一台的别名为B:`vi /etc/hostname` 3、修改每一个虚