当前位置: 首页 > news >正文

Docker搭建RabbitMQ集群环境

Docker搭建集群环境


实际生产环境中较少使用直接配置的形式搭建 RabbitMQ集群,通常使用容器化进行部署搭建,Docker 可通过运行同一镜像的方式在一台Linux机器上建立RabbitMQ集群

缺点是当Linux主机出现问题,基于Docker容器搭建的集群环境将无法使用


安装步骤:

配置Docker:

1、下载相关依赖yum install -y yum-utils device-mapper-persistent-data lvm22、配置Docker仓库并安装Dockersudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repoyum install -y docker-ce3、开启自启动systemctl enable docker4、启动Dockersystemctl startr docker

下载RabbitMQ镜像:

指定暴露给外部的端口、控制台端口,获取RabbitMQ最新版本镜像并开启控制台(management参数)

docker run -d --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management

查看RabbitMQ镜像安装情况:

使用 ps 命令查看镜像获取情况

访问外部暴露端口进行RabbitMQ管理页

后续需要创建集群,因此需要停止已经运行的RabbitMQ镜像

docker stop d696199853a2

Docker-Compose搭建集群:

安装Docker-Compose:

1、安装yaml依赖dnf install python3-pip2、安装Docker-Composepip3 install -U pip setuptoolspip3 install docker-compose3、查看版本docker-compose version 

集群配置文件编写:

参数后面不能有空格

version: "2.0"
services:rabbit1:image: rabbitmq:3-managementhostname: rabbit1ports:- 5672:5672- 15672:15672environment:- RABBITMQ_DEFAULT_USER=guest- RABBITMQ_DEFAULT_PASS=guest- RABBITMQ_ERLANG_COOKIE='dmbjzrabbitmq'rabbit2:image: rabbitmq:3-managementhostname: rabbit2ports:- 5673:5672environment:- RABBITMQ_ERLANG_COOKIE='dmbjzrabbitmq'links:- rabbit1rabbit3:image: rabbitmq:3-managementhostname: rabbit3ports:- 5674:5672environment:- RABBITMQ_ERLANG_COOKIE='dmbjzrabbitmq'links:- rabbit1- rabbit2

创建集群容器:

docker-compose up -d


集群容器创建完毕

查看集群容器详情

节点2配置:

进入容器:
 docker exec -it  docker_rabbit2_1 bash
加入到集群:
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@rabbit1
rabbitmqctl start_app
exit

节点3配置:

进入容器:
 docker exec -it  docker_rabbit3_1 bash
加入到集群:
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@rabbit1
rabbitmqctl join_cluster rabbit@rabbit2
rabbitmqctl start_app
exit

测试:

进入控制台web界面查看,集群搭建成功

集群搭建详情


Docker 直接搭建集群:

创建容器:

运行三个MQ容器

docker run -d --hostname rabbit1 --name myrabbit1 -p 15672:15672 -p 5672:5672 -e RABBITMQ_ERLANG_COOKIE='dmbjzcookies' rabbitmq:3-management
docker run -d --hostname rabbit2 --name myrabbit2 -p 15673:15672 -p 5673:5672 --link myrabbit1:rabbit1 -e RABBITMQ_ERLANG_COOKIE='dmbjzcookies' rabbitmq:3-management
docker run -d --hostname rabbit3 --name myrabbit3 -p 15674:15672 -p 5674:5672 --link myrabbit1:rabbit1 --link myrabbit2:rabbit2 -e RABBITMQ_ERLANG_COOKIE='dmbjzcookies' rabbitmq:3-management

加入集群:

进入到三个容器中,使节点2与节点3加入到节点1中

docker exec -it myrabbit1 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
exitdocker exec -it myrabbit2 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster  rabbit@rabbit1
rabbitmqctl start_app
exitdocker exec -it myrabbit3 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster  rabbit@rabbit1
rabbitmqctl start_app
exit

进入控制台web界面查看,集群搭建成功

集群搭建详情

http://www.lryc.cn/news/571817.html

相关文章:

  • 机器学习重构光子学设计范式:从智能器件到前沿系统
  • 【力扣每日一题】划分数组并满足最大差限制
  • iOS开发中的安全实践:如何通过Ipa混淆与加固确保应用安全
  • AI 技术落地实战:开发流程优化、行业场景重塑与前沿应用洞察
  • Evertz SVDN 3080ipx-10G Web管理接口任意命令注入及认证绕过漏洞(CVE-2025-4009)
  • Hive 逻辑优化器
  • 持续集成 CI/CD-Jenkins持续集成GitLab项目打包docker镜像推送k8s集群并部署至rancher
  • 京东618带火四大消费 即时零售和生活服务迎来爆发
  • 几种大功率远距传输WiFI解决方案
  • Spring Boot 常用注解整理
  • 支持selenium的chrome driver更新到137.0.7151.119
  • 面向智能制造场景的永磁同步电机预测控制系统设计
  • python大学校园旧物捐赠系统
  • 火山 RTC 引擎12----合流转推 集成
  • (LeetCode 每日一题) 2966. 划分数组并满足最大差限制 (贪心、排序)
  • [Python][Flask][Gunicorn] 搭建一个服务器-初步-小白式教程 - 1
  • 【系统分析师】第3章-基础知识:计算机系统(核心总结)
  • 如何在 MX Linux 上安装 Blender CAD 软件
  • 资源占用多,Linux 系统中如何降低 CPU 资源消耗并提升利用率?
  • 成组进位及其函数
  • 一篇文章快速学会HTML
  • 智能照明新篇章:电力载波技术的优势与未来展望​
  • 如何配置 SQL Server 混合身份验证模式​
  • [pyvips] 枚举类型 | 错误处理(c->py)
  • LoRA、QLoRA是什么
  • 分布式——分布式系统设计策略一
  • 【threejs】VR看房项目经验总结
  • java高级——注解和反射
  • MySQL 数据处理函数全面详解
  • 【windows常见文件后缀】