0

0

使用Docker部署RabbitMQ集群

雪夜

雪夜

发布时间:2025-09-16 08:09:18

|

830人浏览过

|

来源于php中文网

原创

使用docker部署rabbitmq集群

本文重点介绍如何通过Docker来部署RabbitMQ集群,基础的Docker安装内容不予赘述,读者可自行查找相关资料。

在Windows 10上安装Docker

由于作者使用的是Windows系统,这里推荐一篇优秀的安装指南,请参考:https://www.php.cn/link/559a625353723964777aeaeb47124124a7f

下载RabbitMQ镜像1.镜像地址

RabbitMQ的Docker官方认证镜像地址:https://www.php.cn/link/78cb7fa4cd7b891a867134cf4885e1f5

2.安装命令

在安装之前,请务必将Docker Hub设置为阿里云加速器,以加速安装过程。

请注意选择带有"-management"后缀的镜像版本,因为它包含网页控制台。

3.查看安装情况

使用命令:docker images来查看下载的镜像,示例如下:

使用Docker部署RabbitMQ集群Docker常用命令停止容器:docker stop 容器名称 启动容器:docker start 容器名称 删除容器:docker rm 容器名称 删除镜像:docker rmi 镜像名称 查看运行中的容器:docker ps 查看所有容器:docker ps -a 将容器中的文件复制到物理机:docker cp 容器名称:容器目录 物理机目录 将物理机中的文件复制到容器:docker cp 物理机目录 容器名称:容器目录

进入Docker容器进入Docker容器的方法主要有三种:

使用attach使用SSH使用exec1.attachattach的缺点是,当连接终止或使用exit命令后,容器将停止后台运行,因此不适合在生产环境中使用。由于其局限性,这里不再详细介绍。

2.SSH虽然我们习惯使用SSH连接服务器,但这种方法并不优雅,也不是最佳实践。更多详情请查看:https://www.php.cn/link/be0bbb0f90bc9a8c1124124eb992bae98f9

3.exec目前,exec是最佳的实践方案。下面介绍如何使用它。

进入docker命令:

其中/bin/bash 可能替换为/bin/sh。

使用docker exec --help查看更多命令和说明。

退出docker:

启动RabbitMQ参数说明:

-d 以后台进程运行hostname RabbitMQ主机名称name 容器名称-p port:port 本地端口:容器端口-p 15672:15672 http访问端口-p 5672:5672 amqp访问端口启动后,使用:docker ps 查看程序运行状态。

访问RabbitMQ,使用:https://www.php.cn/link/a80788ea7a51aea6758580944fd40b5d

启动多个RabbitMQdocker run -d --hostname localhost --name myrabbit -p 15672:15672 -p 5672:5672 rabbitmq:3.6.15-managementdocker run -d --hostname localhost2 --name myrabbit2 -p 15673:15672 -p 5673:5672 rabbitmq:3.6.15-management这样,您就可以通过http://宿主机IP:15672 和 https://www.php.cn/link/480262a8c8a59b699e77de6ad8bb0001 来访问RabbitMQ了,默认的用户名和密码仍是guest/guest。

Unimall B2C商城系统
Unimall B2C商城系统

Unimall B2C 商城系统是一个针对中小商户、企业和个人学习者开发的商城系统源码,同时支持微信小程序、H5、安卓App、苹果App。支持集群部署,单机部署。可用于B2C商城,O2O外卖,社区超市,生鲜等。

下载

搭建RabbitMQ集群步骤一:安装RabbitMQ;

步骤二:将RabbitMQ节点加入集群;

步骤一:安装RabbitMQ具体的参数含义,请参考上文“启动RabbitMQ”部分。

注意事项:

多个容器之间需要使用“--link”连接,此参数不可缺少;Erlang Cookie值必须相同,也就是RABBITMQ_ERLANG_COOKIE参数的值必须一致,原因详见下文“配置相同Erlang Cookie”部分;步骤二:将RabbitMQ节点加入集群设置节点1:

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

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

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

设置完成后,通过http://物理机IP:15672 进行访问,默认用户名和密码为guest/guest,效果如下图所示:

使用Docker部署RabbitMQ集群启动了3个节点,包括1个磁盘节点和2个内存节点。

配置相同Erlang Cookie在某些特殊情况下,例如已经运行了一段时间的单个物理机,我们之前没有设置相同的Erlang Cookie值,现在需要将单个物理机部署成集群,这时需要同步Erlang的Cookie值。

由于RabbitMQ是用Erlang开发的,Erlang Cookie相当于不同节点之间通讯的秘钥,Erlang节点通过交换Erlang Cookie进行认证。

要找到Erlang Cookie的位置,首先需要从RabbitMQ启动日志中获取home dir路径,作为根路径。使用:“docker logs 容器名称”查看,如下图:

使用Docker部署RabbitMQ集群因此,Erlang Cookie的完整路径为“/var/lib/rabbitmq/.erlang.cookie”。

注意:每个人的erlang cookie位置可能不同,务必查看自己的home dir路径。

获取到第一个RabbitMQ的Erlang Cookie后,只需将此文件复制到其他RabbitMQ节点即可。

物理机和容器之间的复制命令如下:

从容器复制文件到物理机:docker cp 容器名称:容器目录 物理机目录从物理机复制文件到容器:docker cp 物理机目录 容器名称:容器目录设置Erlang Cookie文件权限:“chmod 600 /var/lib/rabbitmq/.erlang.cookie”。

参考资料https://www.php.cn/link/559a625353723964777aeaeb47124124a7f

https://www.php.cn/link/54d97d6613bb7ac9f94dc4619a06310b

https://www.php.cn/link/be0bbb0f90bc9a8c1124124eb992bae98f9

https://www.php.cn/link/19b060fd3e8d334fa8ce36cc20f5480d

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
erlang语言是什么
erlang语言是什么

erlang是一种并发、容错、分布式和动态类型的编程语言。它专门用于构建并发系统,并提供了一个轻量级进程模型来实现并发性。想了解更多erlang的相关内容,可以阅读本专题下面的文章。

408

2024.06.19

rabbitmq和kafka有什么区别
rabbitmq和kafka有什么区别

rabbitmq和kafka的区别:1、语言与平台;2、消息传递模型;3、可靠性;4、性能与吞吐量;5、集群与负载均衡;6、消费模型;7、用途与场景;8、社区与生态系统;9、监控与管理;10、其他特性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

207

2024.02.23

Java 消息队列与异步架构实战
Java 消息队列与异步架构实战

本专题系统讲解 Java 在消息队列与异步系统架构中的核心应用,涵盖消息队列基本原理、Kafka 与 RabbitMQ 的使用场景对比、生产者与消费者模型、消息可靠性与顺序性保障、重复消费与幂等处理,以及在高并发系统中的异步解耦设计。通过实战案例,帮助学习者掌握 使用 Java 构建高吞吐、高可靠异步消息系统的完整思路。

47

2026.01.28

cookie
cookie

Cookie 是一种在用户计算机上存储小型文本文件的技术,用于在用户与网站进行交互时收集和存储有关用户的信息。当用户访问一个网站时,网站会将一个包含特定信息的 Cookie 文件发送到用户的浏览器,浏览器会将该 Cookie 存储在用户的计算机上。之后,当用户再次访问该网站时,浏览器会向服务器发送 Cookie,服务器可以根据 Cookie 中的信息来识别用户、跟踪用户行为等。

6498

2023.06.30

document.cookie获取不到怎么解决
document.cookie获取不到怎么解决

document.cookie获取不到的解决办法:1、浏览器的隐私设置;2、Same-origin policy;3、HTTPOnly Cookie;4、JavaScript代码错误;5、Cookie不存在或过期等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

368

2023.11.23

阻止所有cookie什么意思
阻止所有cookie什么意思

阻止所有cookie意味着在浏览器中禁止接受和存储网站发送的cookie。阻止所有cookie可能会影响许多网站的使用体验,因为许多网站使用cookie来提供个性化服务、存储用户信息或跟踪用户行为。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

443

2024.02.23

cookie与session的区别
cookie与session的区别

本专题整合了cookie与session的区别和使用方法等相关内容,阅读专题下面的文章了解更详细的内容。

97

2025.08.19

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

1431

2023.07.26

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

23

2026.03.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 13.1万人学习

【李炎恢】ThinkPHP8.x 后端框架课程
【李炎恢】ThinkPHP8.x 后端框架课程

共50课时 | 4.7万人学习

nginx浅谈
nginx浅谈

共15课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号