最近想自己开发一个小系统,而我的电脑里还没有安装任何的开发相关的配套软件和环境,所以想着方便以后开发的原则,就想从头到尾搭建一个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大模型搜索,基本上都能得到解决。这里主要的问题就是搭建之后在浏览器里输入访问地址访问不了,不过这个问题解决起来还算比较容易。