开源 MQ Master:Spring Boot 统一管控 5 大消息队列

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 现有方案的局限性

  1. 工具专用性强 --- Kafka Tool、RabbitMQ Management、RocketMQ Console 等通常仅支持单一 MQ,多 MQ 并存时需频繁切换客户端。
  2. 配置管理分散 --- 各环境连接参数缺乏统一存储与版本管理。
  3. 运维操作不一致 --- 发送、消费、死信等交互方式因产品而异,学习成本较高。
  4. 可观测性不足 --- 跨 MQ 指标难以在同一视图内对比分析。
  5. 本地环境搭建复杂 --- 需分别部署与配置多种 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

访问 http://localhost:8080

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 #微服务 #中间件

相关推荐
AutumnWind04201 小时前
【JDK动态代理源码梳理】
java·后端·spring
妄想出头的工业炼药师1 小时前
腿式里程计
人工智能·算法·开源
vancece1 小时前
新时代的 AI 教育体系 - 全开源:Word Teacher 英语口语训练
人工智能·开源·word
勇哥java实战分享1 小时前
AI 降低了『写代码』的门槛,但是没有降低『软件开发』的复杂度
后端
木雷坞7 小时前
Go 项目实战:用 MLiev IAM 落地企业认证中心
后端·golang·认证
Moment11 小时前
长上下文会最终杀死 Rag 吗?
前端·javascript·后端
蝎子莱莱爱打怪12 小时前
🚀 🚀🚀2026年5月GitHub月榜精选:17个项目中挑出10个推荐,实操4个!
人工智能·后端·ai编程
冬奇Lab13 小时前
每日一个开源项目(第120篇):SkillLens - 微软出品,照亮 AI Agent 技能生命周期的“显微镜”
人工智能·开源·资讯
oort12313 小时前
VLStream:全开源决策式AI视频平台,赋能企业构建自主可控、降本增效的智能视觉应用介绍
大数据·开发语言·人工智能·开源·音视频·数据库架构