由于某些奇葩的原因,无法在内网部署linux或虚拟机,需要在单机windows上搭建RabbitMQ集群
仅适用个人的windows单机开发环境,仅限学习使用,生产环境建议多台Linux服务器进行集群搭建并搭配HAProxy、Keepalive
目录
说明
环境
准备
节点说明
启动
集群
其他问题
参考文章
RabbitMQ 3.8.9
https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.9
Erlang 23.2
https://www.erlang.org/downloads
注意3.8.9使用Erlang需要23,说明如下:
为了排除干扰,请使用干净的RabbitMQ,或者删除当前用户目录的AppData\Roaming\RabbitMQ中的文件db、rabbitmq.config(若有用,自行备份)
节点名 | 端口 | |
rabbit_cluster_1 |
主节点 | 5671、15671 |
rabbit_cluster_2 |
从节点 | 5672、15672 |
rabbit_cluster_3 | 从节点 | 5673、15673 |
1.启动节点1(主节点)
1.1在rabbitmq安装目录下的sbin执行:
set RABBITMQ_NODE_PORT=5671
set RABBITMQ_SERVER_START_ARGS=-rabbitmq_management listener [{port,15671}]
set RABBITMQ_NODENAME=rabbit_cluster_1
./rabbitmq-server
PS:
a.上诉命令可保存为bat文件,方便每次双击即可启动
b.可使用RABBITMQ_CONFIG_FILE来指定配置文件位置,并在配置文件中进行端口配置,而不是使用RABBITMQ_NODE_PORT、RABBITMQ_SERVER_START_ARGS
set RABBITMQ_CONFIG_FILE=%APPDATA%\RabbitMQ\rabbitmq-cluster1.config
set RABBITMQ_NODENAME=rabbit_cluster_1
./rabbitmq-server
1.2启用web管理页面插件
sbin目录下执行以下命令:
rabbitmq-plugins enable rabbitmq_management
2.启动节点2、3
将端口5671、15671分别改为5672、15672(节点2),5673、15673 (节点3),再启动
3.检查端口
检查端口是否指定成功,例如节点2的端口应为5672、15672、25672
若端口不一致,请检查:
a.启动命令中,环境变量RABBITMQ_SERVER_START_ARGS中的端口是否正确,注意官网、大部分的教程中为Linux环境,RABBITMQ_SERVER_START_ARGS的值带了双引号"",而window环境下不应带双引号,否则将设置不成功
b.是否在%APPDATA%/RabbitMQ中,已存在了rabbitmq.config
停止节点2的app
rabbitmqctl -n rabbit_cluster_2 stop_app
将节点2加入节点1的集群
rabbitmqctl -n rabbit_cluster_2 join_cluster rabbit_cluster_1@CAIJUN
检查节点2是否已加入集群
在集群成功后,关闭所有节点,再次启动,需要先启动从节点(节点2、3),再启动主节点(节点1),否则节点1会一直等待,错误日志:
若使用了较多的插件,RABBITMQ_SERVER_START_ARGS中的
端口应增加,例如:
RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15671}] -rabbitmq_stomp tcp_listeners [61615] -rabbitmq_mqtt tcp_listeners [1885]"
官网 https://www.rabbitmq.com/clustering.html
RabbitMQ单机集群搭建 https://blog.csdn.net/Java_HuiLong/article/details/73718714