一、简述
RabbitMQ 在 Linux 端的集群搭建可参考的教程很多,但 windows 端的相对较少,虽然生产环境肯定还是要在 Linux 上整的,但是本着不整好不痛快的精神,参考了好几篇博客,踩了一些坑,终于搭好了。😆😆😆
二、步骤
集群包括一个主节点,两个从节点,以下是操作步骤
-
打开 windows 命令提示符,注意不是 powershell(后续需要在这个终端设置变量)
-
新建三个命令提示符,每个终端负责每个节点的环境配置和启动,在每个命令提示符中依次执行设置环境变量,启动节点的命令。
第一、三行命令中的值是端口号,第二行的值是节点名称,可以根据需求更改
# 配置主节点 set RABBITMQ_NODE_PORT=5673 set RABBITMQ_NODENAME=master set RABBITMQ_SERVER_START_ARGS=-rabbitmq_management listener [{port,15673}] rabbitmq-server.bat
# 配置从1节点 set RABBITMQ_NODE_PORT=5674 set RABBITMQ_NODENAME=slave1 set RABBITMQ_SERVER_START_ARGS=-rabbitmq_management listener [{port,15674}] rabbitmq-server.bat
# 配置从2节点 set RABBITMQ_NODE_PORT=5675 set RABBITMQ_NODENAME=slave2 set RABBITMQ_SERVER_START_ARGS=-rabbitmq_management listener [{port,15675}] rabbitmq-server.bat
-
新建一个终端,在终端内停止每个节点的运行并重置每个节点(防止创建集群时出现不同步等问题)
rabbitmqctl.bat -n master stop_app rabbitmqctl.bat -n master reset rabbitmqctl.bat -n slave1 stop_app rabbitmqctl.bat -n slave1 reset rabbitmqctl.bat -n slave2 stop_app rabbitmqctl.bat -n slave2 reset
-
启动主节点
rabbitmqctl.bat -n master start_app
-
从节点挂载到主节点下
rabbitmqctl.bat -n slave1 join_cluster master@workMachine rabbitmqctl.bat -n slave2 join_cluster master@workMachine
-
启动从节点
rabbitmqctl.bat -n slave1 start_app rabbitmqctl.bat -n slave2 start_app
完成
这时再进入主节点的控制界面就可以看到三个节点都在线了
通过命令rabbitmqctl.bat cluster_status -n master
也可以看到三个节点的运行状况
C:\Users\hahaha> rabbitmqctl.bat cluster_status -n master
Cluster status of node master@workMachine ...
Basics
Cluster name: master@workMachine
Total CPU cores available cluster-wide: 48
Disk Nodes
master@workMachine
slave1@workMachine
slave2@workMachine
Running Nodes
master@workMachine
slave1@workMachine
slave2@workMachine
Versions
master@workMachine: RabbitMQ 3.12.0 on Erlang 26.0.1
slave1@workMachine: RabbitMQ 3.12.0 on Erlang 26.0.1
slave2@workMachine: RabbitMQ 3.12.0 on Erlang 26.0.1
CPU Cores
Node: master@workMachine, available CPU cores: 16
Node: slave1@workMachine, available CPU cores: 16
Node: slave2@workMachine, available CPU cores: 16