tnblog
首页
视频
资源
登录

Docker 部署RabbitMq集群

8701人阅读 2020/10/29 15:39 总访问:3724225 评论:0 收藏:0 手机
分类: docker

Docker远征

Docker 部署RabbitMq集群

镜像环境

  1. docker pull rabbitmq:3-management

镜像后面带management是带web管理界面的

官方示例

官方启动方式

  1. docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management

启动方式加入其他参数(如用户名,密码)

  1. docker run -d -it --name myrabbitmq -p 5672:5672 -p 15672:15672 -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=password rabbitmq:3-management

docker-compose.yml

  1. version: '3'
  2. services:
  3. rabbitmq:
  4. image: rabbitmq:3-management
  5. container_name: myrabbitmq
  6. hostname: myrabbitmq
  7. restart: always
  8. ports:
  9. - 5672:5672
  10. - 15672:15672
  11. volumes:
  12. - /var/docker/rabbitmq/data:/var/lib/rabbitmq
  13. environment:
  14. - RABBITMQ_DEFAULT_USER=admin
  15. - RABBITMQ_DEFAULT_PASS=123456

Docker集群示例

安装RabbitMQ

  1. #第一个
  2. docker run -d --hostname rabbit1 --name myrabbit1 -p 15672:15672 -p 5672:5672 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3-management
  3. #第二个
  4. docker run -d --hostname rabbit2 --name myrabbit2 -p 5673:5672 --link myrabbit1:rabbit1 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3-management
  5. #第三个
  6. docker run -d --hostname rabbit3 --name myrabbit3 -p 5674:5672 --link myrabbit1:rabbit1 --link myrabbit2:rabbit2 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3-management

注意
多个容器之间使用“—link”连接,此属性不能少;
Erlang Cookie值必须相同,也就是RABBITMQ_ERLANG_COOKIE参数的值必须相同,原因见下文“配置相同Erlang Cookie”部分;

加入RabbitMQ节点到集群


设置节点1:

  1. docker exec -it myrabbit1 bash
  2. rabbitmqctl stop_app
  3. rabbitmqctl reset
  4. rabbitmqctl start_app
  5. exit

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

  1. docker exec -it myrabbit2 bash
  2. rabbitmqctl stop_app
  3. rabbitmqctl reset
  4. rabbitmqctl join_cluster --ram rabbit@rabbit1
  5. rabbitmqctl start_app
  6. exit

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

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

  1. docker exec -it myrabbit3 bash
  2. rabbitmqctl stop_app
  3. rabbitmqctl reset
  4. rabbitmqctl join_cluster --ram rabbit@rabbit1
  5. rabbitmqctl start_app
  6. exit

设置好之后,使用http://物理机ip:15672 进行访问了,默认账号密码是guest/guest,效果如下图:

其他答疑

1.为什么要配置相同的erlang cookie?

因为RabbitMQ是用Erlang实现的,Erlang Cookie相当于不同节点之间相互通讯的秘钥,Erlang节点通过交换Erlang Cookie获得认证。

K8s集群示例

官网貌似行不通…求大佬们指点一二


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

评价

window7 Docker启动失败 error: Failed to create the VirtualBox object。VirtualBox com对象失败

docker启动失败 报错 error: Failed to create the VirtualBox object这个错是因为:virtuelbox 无法启动,所以启动之后会...

Docker启动报错 No default Boot2Docker ISO found locally downloading the latest

这是因为,启动时如果检测到没有 Boot2Docker,就会去下载,这个下载过程出现网络连接上的错误了,导致启动失败。可以去下...

Docker常用命令删除镜像命令进入容器、Docker重启命令等

1. docker version查看 Docker 版本信息2. docker info显示 Docker 系统信息,包括镜像,容器数等3. 运行容器第一次使用:d...

Docker 二次启动失败(本人这里使用的是hyper-v)

fatal: failed to start daemon: Error initializing network controller: Error creating default network: hnsCall faile...

Docker中Sware集群与service

swarm 总结:1,docker中使用swarm集群可以达到多任务分配到不同的节点进行处理,如果有空闲的docker机子将会把请求的处理...

.netCore 使用分布式缓存(Docker+redis)

1. 通过docker创建 Redis执行命令:dockerrun--nameasp-redis-p6379:6379-dredis查看redis状态:dockerps可以发现alreadywo...

.net Core3.0在Ubuntu 16.04上面的部署(Supervisor+nginx)(扩展Docker)

前 言Linux 随着Linux越来越流行,本人一个.net程序员也多次研究linux与.net的相关产品,以及中间件的使用方式。So今天给...

Docker 下载 mcr.microsoft.com/dotnet/core/sdk:3.1 老不行

请将其修改为:mcr.azk8s.cn/dotnet/core/sdk:3.1

Docker常用命令

Docker简单命令整理清单[TOC] Login 获取账户信息获取账户信息 docker info | sed '/Username:/!d;s/.* //' ...

windows安装Docker

win7、win8 等需要利用 docker toolbox 来安装,国内可以使用阿里云的镜像来下载,下载地址:http://mirrors.aliyun.com/do...

Linux 安装Web版Vscode(Docker+Local)

Linux 安装Web版Vscode(Docker+Local)[TOC] code-server 介绍 在任何地方的任何机器上运行VS代码,并在浏览器中访问它...

Docker运行 Elasticsearch Kibana和Cerebro

Docker运行 Elasticsearch Kibana和Cerebro[TOC] Demo 运行 Docker-compose,本地构建更高效的开发环境,更直观地了解 El...

Docker部署简单的mysql

Docker部署简单的mysql[TOC] 首先这玩意我是真不想写,网上写的太多了,但是又没有找到快速的创建方式。so…有疑问都可...

Unable to get the local Boot2Docker ISO version: Did not find prefix "-v" in version string

我已经从 github 上下载 v19.03.12 的镜像到 vps 然后拖回本地放在 C:\Users\Administrator.docker\machine\cache 下了。依...

Docker容器和镜像的区别

下面这两个比喻说得比较好 镜像就类似操作系统光盘介质,容器相当于通过光盘安装后的系统。通过光盘(镜像),我们能在不同...
这一世以无限游戏为使命!
排名
2
文章
662
粉丝
44
评论
93
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 : 好是好,这个对效率影响大不大哇,效率高不高
ASP.NET Core 服务注册生命周期
剑轩 : http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术