前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RabbitMQ笔记(三)-基于Docker安装RabbitMQ集群

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

作者头像
yingzi_code
发布2019-09-02 15:55:20
1.2K0
发布2019-09-02 15:55:20
举报

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

代码语言:javascript
复制
docker run -d --hostname rabbit1 --name myrabbit1 -p 8101:15672 -p 8201:5672 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.6.15-management
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
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节点到集群
代码语言:javascript
复制
设置节点1:

docker exec -it myrabbit1 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
exit

设置节点2,加入到集群:

docker exec -it myrabbit2 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbit1
rabbitmqctl start_app
exit

参数“--ram”表示设置为内存节点,忽略次参数默认为磁盘节点。

设置节点3,加入到集群:

docker exec -it myrabbit3 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbit1
rabbitmqctl start_app
exit

安装完成,使用docker ps查看

代码语言:javascript
复制
CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS                                                                                       NAMES
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
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
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

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

step3. 配置集群同步信息

直接在管理页面配置

点击Admin -> Virtual Hosts

添加一个虚拟主机cluster2

再点击虚拟主机配置用户

点击Policies,配置高可用策略

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年01月13日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • step1. 依次启动三个RabbitMQ的容器
  • step2. 加入RabbitMQ节点到集群
  • step3. 配置集群同步信息
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档