46b0c13462ce787fcdef17578dd16b0a5eed9540
mq-starter — 统一 MQ 抽象层("MQ 界的 JDBC")
一个独立、全平台通用的 starter。业务配一行 mq.type 选底层(rocketmq | redis-stream),
只面向 starter 接口编程,不关心用哪个 MQ、不管理生产者消费者;换 MQ = 改配置,业务代码一行不动。
- 坐标 groupId:
com.njcn,版本1.0.0-SNAPSHOT(Phase 2 阶段本地mvn install) - JDK 1.8 / Spring Boot 2.3.12.RELEASE /
META-INF/spring.factories自动装配 - 零业务依赖:不依赖
message-api等任何业务模块
业务视角(对外契约)
mq:
type: redis-stream # 或 rocketmq
// 发
@Resource MqTemplate mq;
mq.send("LN_Topic", payload);
mq.send("File_Topic", nodeId, payload); // 带路由 key
// 收(业务方法打注解,零 MQ 概念)
@MqListener(topic = "LN_Topic", group = "ln_consumer")
public void onFrontData(FrontData msg) { /* 纯业务 */ }
模块结构
| 模块 | 职责 |
|---|---|
mq-starter-core |
门面 MqTemplate + @MqListener 注解扫描 + 中立信封 MqMessage + driver SPI + 生命周期 |
mq-starter-rocketmq |
rocket driver(基于官方 rocketmq-spring 编程式注册) |
mq-starter-redis-stream |
redis driver(复用 redis-stream-springboot-starter 低层件,零改动 Phase 1) |
mq-spring-boot-starter |
聚合 jar,业务方只引这一个坐标 |
装配机制
@ConditionalOnProperty("mq.type") 静态二选一:两套 driver 各只在对应值下装配,
同一上下文只存在一个 MqDriver bean。
关联设计
- 设计稿:
cn-data-platform/docs/superpowers/specs/2026-06-25-mq-starter-design.md - 能力清单与轻量版范围:
cn-data-platform/docs/2026-06-25-mq-starter能力清单与轻量版范围.html - 实现计划(轻量版 Phase 2):
cn-data-platform/docs/superpowers/plans/2026-06-25-mq-starter-轻量版-phase2.md
Description
Languages
Java
100%