Docker Desktop里搭建RabbitMq 4.1.3集群的保姆级教程

最近想自己开发一个小系统,而我的电脑里还没有安装任何的开发相关的配套软件和环境,所以想着方便以后开发的原则,就想从头到尾搭建一个RabbitMq cluster集群环境。一开始觉得这个搭建应该不难,网上有很多现成的资料而且有AI大模型的加持,所以理论上很快能搞定,可结果是我花了大概半天时间才算基本完成环境搭建,因此记录一下整个过程很有必要。

一、涉及软件及环境

|----|------------------|-----------------|
| 序号 | 软件名称 | 版本号 |
| 1 | Windows 11 家庭中文版 | 26100.4652 |
| 2 | Docker Desktop | 4.44.2 (202017) |

二、Docker Desktop下载&安装

这个就省略了,请参考《Docker Desktop里搭建Mysql 9.4主从复制的保姆级教程》相关内容。

三、RabbitMq 4.1.3下载&安装

1、在Docker Desktop终端里输入"docker pull rabbitmq:latest",下载最新的redis镜像,如下:
由于我已经下载了,所以这里没有出现下载进度界面,如果想跟我一样的话,请将latest替换成"4.1.3"
2、创建专用网络

复制代码
docker network create rabbitmq-cluster

3、RabbitMQ节点配置

  • 启动第一个节点(主节点)
复制代码
docker run -d --hostname rabbit1 --name rabbit1 -p 5672:5672 -p 15672:15672 -e RABBITMQ_ERLANG_COOKIE='cluster-cookie' -e RABBITMQ_NODENAME=rabbit@rabbit1 --network rabbitmq-cluster rabbitmq:latest
  • 启动第二个节点
复制代码
docker run -d --hostname rabbit2 --name rabbit2 -p 5673:5672 -p 15673:15672 -e RABBITMQ_ERLANG_COOKIE='cluster-cookie' -e RABBITMQ_NODENAME=rabbit@rabbit2 --network rabbitmq-cluster rabbitmq:latest
  • 启动第三个节点
复制代码
docker run -d --hostname rabbit3 --name rabbit3 -p 5674:5672 -p 15674:15672 -e RABBITMQ_ERLANG_COOKIE='cluster-cookie' -e RABBITMQ_NODENAME=rabbit@rabbit3 --network rabbitmq-cluster rabbitmq:latest
  • 在docker desktop里能看到3个rabbitmq节点正常启动,如下:
    4、集群配置步骤
  • 方法一、在docker desktop终端里输入命令,进入rabbit2容器:
复制代码
docker exec -it rabbit2 bash
  • 方法二、直接在docker desktop的Containers里点击rabbit2容器实例的操作,然后在弹出的菜单里点击"Open in terminal",进入rabbit2的容器终端里,如下
  • 停止RabbitMQ应用:
复制代码
rabbitmqctl stop_app
  • 加入集群:
复制代码
rabbitmqctl join_cluster rabbit@rabbit1
  • 启动应用:
复制代码
rabbitmqctl start_app
  • 运行终端界面如下:
  • ‌重复上述步骤配置rabbit3节点,具体执行命令的界面如下:
    5、验证集群状态
  • 先进入rabbit1的终端命令界面,如下:
复制代码
docker exec -it rabbit1 bash
  • 在终端里直接输入验证命令,如下:
复制代码
rabbitmqctl cluster_status
  • 运行命令后,返回如下信息:
    6、管理界面访问
  • 在浏览器里输入如下访问地址及账户密码‌
    主节点管理界面:http://localhost:15672
    默认用户名/密码:guest/guest
    结果浏览器里输入后,访问不了。经过一番搜索之后找到如下解决方案:
    进入rabbit1容器实例的终端,然后输入如下命令:
复制代码
rabbitmq-plugins enable rabbitmq_management

界面如下:
这个时候在浏览器里输入访问地址出现登录界面,如下:
输入账户密码之后,界面如下:
至此,整个rabbitmq集群就搭建完成了。

四、总结

整体搭建过程相对mysql主从复制以及redis 集群搭建来说,要简单一些。也许是有了前面的搭建经验,效率提升不少。遇到问题时候只要借助AI大模型搜索,基本上都能得到解决。这里主要的问题就是搭建之后在浏览器里输入访问地址访问不了,不过这个问题解决起来还算比较容易。

相关推荐
xwz小王子19 小时前
TRO 综述:面向多模态示教机器人学习的深度生成模型
学习·机器人
2501_9418752819 小时前
分布式系统中的安全权限与审计工程实践方法论经验总结与多语言示例解析分享
开发语言·rabbitmq
强子感冒了19 小时前
Java Map学习笔记:HashMap、LinkedHashMap 与 TreeMap 的核心使用与区别
java·笔记·学习
@我们的天空20 小时前
【AI应用】学习和实践基于 LangChain/LangGraph 的链(Chain)构建、Agent 工具调用以及多轮对话流程的实现
人工智能·gpt·学习·语言模型·chatgpt·langchain·aigc
西西学代码20 小时前
Flutter---CustomPaint
学习·flutter
深蓝海拓20 小时前
PySide6从0开始学习的笔记(二十二) 几种封装信号传递内容的方法
笔记·python·qt·学习·pyqt
John_ToDebug20 小时前
解构“原创”神话:论在知识爆炸时代如何高效学习与务实创新
学习·程序人生
小李子呢021121 小时前
Javascript学习(六)--Web APIs(日期对象,节点操作,M端事件,JS插件,综合案例)
开发语言·前端·javascript·学习
2501_9418798121 小时前
多语言微服务架构下的微服务消息幂等性与重试机制实践
rabbitmq
2501_941804321 天前
从单机缓存到分布式缓存高可用与一致性体系落地的互联网系统工程实践随笔与多语言语法思考
rabbitmq·memcached