Skip to content

RabbitMQ消息队列搭建

RabbitMQ 在我们的平台中并非强制依赖,可以根据实际情况使用。如果遇到以下场景,可以考虑引入:

  • 生产工单下发 :计划系统下发工单后,通过消息队列通知各工序车间异步拉取任务,避免同步推送阻塞。

  • 物料消耗扣减 :生产投料完成后发送消息,库存服务异步更新原料消耗记录,不影响主生产流程的响应速度。

  • 设备数据采集 :PLC 或 SCADA 系统采集到的实时数据先写入队列,后端处理服务按能力消费,避免高频数据直接冲击数据库。

  • 质量异常告警 :质检系统发现不合格品后发送消息,通知相关车间、设备维护及管理人员,实现多系统解耦通知。

  • 工序间流转驱动 :上道工序完工后发送流转消息,触发下道工序的待办任务生成,替代直接数据库轮询。

  • 跨系统数据同步 :ERP 中的订单信息变更后通过队列同步至 MES,下游系统各自订阅,无需点对点接口开发。

  • 分布式数据一致性: 解决比如多个库存处理的数据一致性问题,跨系统,跨服务之类的。

我们假设操作系统均为Windows Server 2025 ,部署3个节点的rabbitmq。

修改主机名

在每台服务器上以管理员身份运行 PowerShell,修改主机名(根据需要修改),比如:

powershell
Rename-Computer -NewName "rabbitmq-node1" -Force

配置 hosts 文件

每台节点都需要添加。

C:\Windows\System32\drivers\etc\hosts 文件中添加:

192.168.1.10 rabbitmq-node1
192.168.1.11 rabbitmq-node2
192.168.1.12 rabbitmq-node3

开放防火墙端口

记得在每台节点的 Windows 防火墙中开放以下 TCP 端口:

端口服务说明
4369EPMDErlang 端口映射守护进程
5672AMQP消息通信端口
15672Management UIRabbitMQ 管理插件界面
25672Inter-node集群内部节点间通信

安装 Erlang

访问 Erlang Solutions 官网下载对应 Windows 版本的 Erlang OTP 安装包。

安装 RabbitMQ

  1. 访问 RabbitMQ 官网下载 Windows 安装包:https://github.com/rabbitmq/rabbitmq-server/releases
  2. 以管理员身份运行安装程序

安装过程中确保勾选 "Start RabbitMQ service" 选项。

步骤 1:获取主节点的 Cookie

在主节点上,Cookie 文件位于以下两个位置:

  • C:\Windows\System32\config\systemprofile\.erlang.cookie(服务账户使用)
  • C:\Users\<当前用户名>\.erlang.cookie(命令行工具使用)

步骤 2:将主节点的 Cookie 复制到所有子节点

将主节点的 .erlang.cookie 文件内容复制到子节点的对应位置:

  • C:\Windows\System32\config\systemprofile\.erlang.cookie
  • C:\Users\<administrator>\.erlang.cookie

步骤 3:重启所有 RabbitMQ 服务

在每台节点上执行:

powershell
Restart-Service RabbitMQ

组建集群

在子节点上执行以下命令(假设主节点主机名为 rabbitmq-node1):

powershell
# 进入 RabbitMQ 的 sbin 目录
cd "C:\Program Files\RabbitMQ Server\rabbitmq_server-3.13.3\sbin"

# 停止 RabbitMQ 应用
.\rabbitmqctl.bat stop_app

# 重置节点(清除原有集群信息)
.\rabbitmqctl.bat reset

# 加入集群(将当前节点加入主节点)
.\rabbitmqctl.bat join_cluster rabbit@rabbitmq-node1

# 启动 RabbitMQ 应用
.\rabbitmqctl.bat start_app

验证集群状态

在任意节点上执行以下命令验证集群是否组建成功:

powershell
.\rabbitmqctl.bat cluster_status

预期输出:

Cluster status of node rabbit@rabbitmq-node1 ...

Basics

Cluster name: rabbit@rabbitmq-node1

Disk Nodes

rabbit@rabbitmq-node1
rabbit@rabbitmq-node2
rabbit@rabbitmq-node3

Running Nodes

rabbit@rabbitmq-node1
rabbit@rabbitmq-node2
rabbit@rabbitmq-node3

启用管理插件

每个节点 上启用 RabbitMQ Management 管理界面:

powershell
cd "C:\Program Files\RabbitMQ Server\rabbitmq_server-3.13.3\sbin"

.\rabbitmq-plugins.bat enable rabbitmq_management

完成!

HiMind 工业互联网平台 技术文档