Files
mq-starter/README.md
2026-06-25 21:14:37 +08:00

47 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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`