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

相关专题

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

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

392

2024.06.19

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

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

200

2024.02.23

html版权符号
html版权符号

html版权符号是“©”,可以在html源文件中直接输入或者从word中复制粘贴过来,php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

611

2023.06.14

html在线编辑器
html在线编辑器

html在线编辑器是用于在线编辑的工具,编辑的内容是基于HTML的文档。它经常被应用于留言板留言、论坛发贴、Blog编写日志或等需要用户输入普通HTML的地方,是Web应用的常用模块之一。php中文网为大家带来了html在线编辑器的相关教程、以及相关文章等内容,供大家免费下载使用。

648

2023.06.21

html网页制作
html网页制作

html网页制作是指使用超文本标记语言来设计和创建网页的过程,html是一种标记语言,它使用标记来描述文档结构和语义,并定义了网页中的各种元素和内容的呈现方式。本专题为大家提供html网页制作的相关的文章、下载、课程内容,供大家免费下载体验。

467

2023.07.31

html空格
html空格

html空格是一种用于在网页中添加间隔和对齐文本的特殊字符,被用于在网页中插入额外的空间,以改变元素之间的排列和对齐方式。本专题为大家提供html空格的相关的文章、下载、课程内容,供大家免费下载体验。

245

2023.08.01

html是什么
html是什么

HTML是一种标准标记语言,用于创建和呈现网页的结构和内容,是互联网发展的基石,为网页开发提供了丰富的功能和灵活性。本专题为大家提供html相关的各种文章、以及下载和课程。

2891

2023.08.11

html字体大小怎么设置
html字体大小怎么设置

在网页设计中,字体大小的选择是至关重要的。合理的字体大小不仅可以提升网页的可读性,还能够影响用户对网页整体布局的感知。php中文网将介绍一些常用的方法和技巧,帮助您在HTML中设置合适的字体大小。

505

2023.08.11

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

9

2026.01.16

热门下载

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

精品课程

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

共137课时 | 8.7万人学习

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

共50课时 | 4.4万人学习

nginx浅谈
nginx浅谈

共15课时 | 0.8万人学习

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

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