windows单机下的RabbitMQ集群搭建

说明

由于某些奇葩的原因,无法在内网部署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,说明如下:

windows单机下的RabbitMQ集群搭建_第1张图片

准备

为了排除干扰,请使用干净的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

windows单机下的RabbitMQ集群搭建_第2张图片

集群

停止节点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会一直等待,错误日志:

windows单机下的RabbitMQ集群搭建_第3张图片

若使用了较多的插件,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

 

你可能感兴趣的:(rabbitmq)