MQ Master
全品类消息队列统一可视化管控平台
Kafka · RabbitMQ · RocketMQ · Redis Stream · ActiveMQ
集群管理 | 运行监控 | 消息运维 | 链路追踪
摘要
在企业微服务架构中,多种消息队列并存已成为常见实践。不同 MQ 往往配套不同的管理工具,导致连接配置分散、运维操作不统一、故障排查效率偏低。MQ Master 旨在通过单一 Web 平台,对上述五种主流消息队列提供统一的连接管理、监控展示与消息运维能力,降低多 MQ 环境下的使用与维护成本。
01 背景与问题定义
消息队列(Message Queue,MQ)在异步解耦、流量削峰、事件驱动等场景中广泛应用。随着系统演进,技术栈中常同时存在多种 MQ 产品,例如:Kafka 用于日志与流式处理,RabbitMQ 用于业务事件分发,RocketMQ 用于事务消息,Redis Stream 用于轻量级事件流,ActiveMQ 用于遗留 JMS 系统对接。
1.1 现有方案的局限性
- 工具专用性强 --- Kafka Tool、RabbitMQ Management、RocketMQ Console 等通常仅支持单一 MQ,多 MQ 并存时需频繁切换客户端。
- 配置管理分散 --- 各环境连接参数缺乏统一存储与版本管理。
- 运维操作不一致 --- 发送、消费、死信等交互方式因产品而异,学习成本较高。
- 可观测性不足 --- 跨 MQ 指标难以在同一视图内对比分析。
- 本地环境搭建复杂 --- 需分别部署与配置多种 MQ 服务,耗时较长。
02 产品概述
MQ Master 是一套面向开发与运维人员的 Web 化消息队列管控平台。其核心设计目标为:在统一界面内完成对多种 MQ 的集群配置、运行监控与消息级操作,并通过适配器模式封装各 MQ 官方 SDK,保证操作语义尽可能一致。
2.1 支持的 MQ 类型
| 类型 | 端口 | SDK |
|---|---|---|
| Kafka | 9092 | kafka-clients |
| RabbitMQ | 5672 | amqp-client |
| RocketMQ | 9876 | rocketmq-client |
| Redis Stream | 6379 | jedis |
| ActiveMQ | 61616 | activemq-client |
2.2 技术架构
| 层级 | 说明 |
|---|---|
| 后端 | Spring Boot 3.2 · JDK 17 · Spring Data JPA |
| 存储 | MySQL 8.0(集群配置、模板持久化) |
| 前端 | 单页 HTML · Chart.js 图表 |
| 部署 | Docker Compose 编排全套服务 |
| 扩展 | MqAdapter 适配器模式,可扩展新 MQ 类型 |
03 功能模块说明
3.1 集群连接管理
提供 MQ 集群连接配置的全生命周期管理,包括新增、编辑、删除与连通性测试。配置项涵盖集群名称、MQ 类型、主机地址、端口、认证凭据、虚拟主机及备注。所有配置持久化于 MySQL,应用重启后自动加载。
界面左下角下拉框可快速切换操作集群。首次启动时,系统自动初始化 5 套本地 Docker 集群连接。

图 1 · 集群配置列表

图 2 · 新增/编辑集群表单
3.2 运行监控大盘
- 核心指标 --- 生产 TPS、消费 TPS、消息堆积、在线消费者、死信数量
- 趋势图表 --- 生产/消费吞吐量、堆积量时序折线图
- 资源列表 --- Topic/Queue 堆积量、速率、分区、状态
告警机制:堆积 > 30,000 条或死信 > 200 条时展示告警横幅;可启用 Web Speech API 语音播报。

图 3 · 监控大盘
3.3 消息发送
支持向 Topic/Queue 手动投递消息:destination、body(JSON)、Headers、Message Key、延迟参数(delayMs)。支持批量导入(每行一条 JSON)及从模板库加载预置报文。

图 4 · 消息发送界面
3.4 消息消费与检索
分页查询 · 关键词过滤 · 详情弹窗(Headers + Body 格式化)· 重置位点 · 清理队列 · 导出 JSON。
注:主要用于开发测试阶段的 message peek,生产环境应评估对消费位点的影响。

图 5 · 消息消费列表

图 6 · 消息详情视图
3.5 死信队列管理
死信(Dead Letter):消费失败超限、过期、队列满或被拒绝后,转入专用队列的消息。平台提供独立面板:查询、查看详情、批量重试。
| MQ | 死信命名规则 |
|---|---|
| RabbitMQ | {queue}.dlq |
| Kafka | {topic}.DLQ |
| RocketMQ | %DLQ%{topic} |
| Redis | {stream}:dlq |
| ActiveMQ | ActiveMQ.DLQ |

图 7 · 死信管理界面
3.6 消息轨迹查询
输入 Message ID,时间线展示:PRODUCE → STORE → DISPATCH → CONSUME,含时间戳、节点、状态与详情。

图 8 · 消息轨迹时间线
3.7 消息模板库
保存常用测试报文(名称、MQ 类型、目标、Headers、Body),MySQL 持久化,一键加载至发送页。

图 9 · 消息模板库
3.8 界面布局
左侧导航 + 顶部工具栏 + 主内容区。深色主题,适配长时间运维查看。

图 10 · 整体界面与集群切换
04 与单一 MQ 工具的对比
| 对比维度 | 单一工具 | MQ Master |
|---|---|---|
| MQ 类型覆盖 | 单一 | 五种 |
| 集群配置存储 | 本地/无 | MySQL |
| 跨 MQ 监控 | 不支持 | 统一大盘 |
| 死信管理 | 部分 | 独立面板 |
| 消息轨迹 | 一般无 | 全链路 |
| 本地环境 | 分别安装 | Docker 一键 |
05 部署与使用说明
5.1 环境要求
JDK 17+ · Maven 3.8+ · Docker Compose
5.2 部署步骤
1. 启动基础设施
bash
docker compose up -d
bash scripts/init-mq-data.sh
2. 启动应用
bash
mvn spring-boot:run
3. 验证功能
选集群 → 测连通 → 发消息 → 消费验证 → 轨迹/模板
06 适用场景与建议
适用场景
- 多 MQ 并存环境的开发联调
- 测试阶段消息构造与验证
- 运维巡检堆积与死信
- 本地 MQ 学习环境搭建
- 消息队列培训演示
使用建议
- 生产环境以只读监控为主,写操作需谨慎
- 同一时刻仅运行一个应用实例
- 连接生产集群前先测试连通性
07 常见问题
Q1 · 能否替代 Kafka Tool?
定位不同。专用工具在单一 MQ 深度运维上更成熟;MQ Master 侧重多 MQ 统一管控,适合作为补充。
Q2 · 离线模拟预览是什么?
开启后使用模拟数据,无需真实 MQ,适用于 UI 演示;集群配置仍从数据库加载。
Q3 · 如何重置数据库?
执行 bash scripts/reset-db.sh 后重启应用,将自动重新初始化。
结语
MQ Master --- 全品类消息队列统一管控平台 · Spring Boot 3.2 · Docker Compose
作者:进阶技术客栈
专注中间件实战与架构设计
关注后回复 MQ 获取项目源码
#消息队列 #Kafka #RabbitMQ #RocketMQ #微服务 #中间件