commit 69db3fdd012f377027af237ae841e72ff067dbe1 Author: hongawen <83944980@qq.com> Date: Thu Jun 25 21:14:37 2026 +0800 chore: 初始化 mq-starter 仓库(.gitignore + README) Co-Authored-By: Claude Opus 4.8 (1M context) diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..733b6b7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,32 @@ +# Compiled class file +*.class + +# Log file +*.log +logs/ + +# Package Files +*.jar +*.war +*.ear +*.tar.gz +*.rar + +# Maven +target/ + +# IDE +*.iml +*.ipr +*.iws +.idea/ +.classpath +.project +.settings/ +.factorypath + +# virtual machine crash logs +hs_err_pid* +replay_pid* + +.DS_Store diff --git a/README.md b/README.md new file mode 100644 index 0000000..63f2e25 --- /dev/null +++ b/README.md @@ -0,0 +1,46 @@ +# 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` 等任何业务模块 + +## 业务视角(对外契约) + +```yaml +mq: + type: redis-stream # 或 rocketmq +``` + +```java +// 发 +@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`