mq-starter — 统一 MQ 抽象层("MQ 界的 JDBC"

一个独立、全平台通用的 starter。业务配一行 mq.type 选底层(rocketmq | redis-stream 只面向 starter 接口编程,不关心用哪个 MQ、不管理生产者消费者换 MQ = 改配置,业务代码一行不动。

  • 坐标 groupIdcom.njcn,版本 1.0.0-SNAPSHOTPhase 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 2cn-data-platform/docs/superpowers/plans/2026-06-25-mq-starter-轻量版-phase2.md
Description
No description provided
Readme 226 KiB
Languages
Java 100%