docs: 批量攒批两端对齐后的能力表述收尾(上轮遗留工作区改动)
README 能力表批量行 ⚠️→✅、引言补「含 idle flush」;CLAUDE.md 差异段 同步「整批失败为剩余差距、concurrency 唯一未兑现」口径。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -37,7 +37,7 @@ mq-starter-rocketmq RocketMQ driver(收发 + 原生重试/死信 + RET
|
||||
mq-spring-boot-starter 聚合 jar,业务方只引这一个(恒含 idempotent-redis)
|
||||
```
|
||||
|
||||
> ⚠️ **两个 driver 仍有差异**(README 有对照表):去重、失败落库两端已对齐(2026-07 起 rocketmq `idempotent=true` 生效,需 Redis 可达);剩余差距是死信模型(redis 只落库 / rocketmq 原生 `%DLQ%`)、批量攒批语义、`concurrency` 两端都未兑现。改跨 driver 行为前先对照 README 能力表。
|
||||
> ⚠️ **两个 driver 仍有差异**(README 有对照表):去重、失败落库两端已对齐(2026-07 起 rocketmq `idempotent=true` 生效,需 Redis 可达);剩余差距是死信模型(redis 只落库 / rocketmq 原生 `%DLQ%`)与批量**整批失败**的处理(逐条 ACK 后无法精确重投整批,故落库+吞掉);真正两端都未兑现的只有 `concurrency`。批量攒批本身(含 idle flush 超时/停机强刷,2026-07 已落地)两端已对齐。改跨 driver 行为前先对照 README 能力表。
|
||||
>
|
||||
> **单独只引 `mq-starter-rocketmq`(不走聚合坐标)时去重需自行加 `mq-starter-idempotent-redis` 依赖**——rocketmq 模块本身不依赖它(刻意零耦合)。
|
||||
|
||||
|
||||
@@ -172,7 +172,7 @@ public class MyErrorHandler implements MqConsumeErrorHandler {
|
||||
|
||||
## 两个 driver 不太一样
|
||||
|
||||
两套实现的能力大头已经对齐:去重、失败落库两端都接上了。剩下的差异主要在死信模型和批量语义:
|
||||
两套实现的能力大头已经对齐:去重、失败落库、批量攒批(含 idle flush)两端都接上了。剩下的差异主要在死信模型,以及批量的**整批失败处理**(攒批本身两端已对齐,糙点在整批失败被吞、无法精确重投):
|
||||
|
||||
| 能力 | Redis Stream | RocketMQ |
|
||||
|---|:---:|:---:|
|
||||
@@ -181,7 +181,7 @@ public class MyErrorHandler implements MqConsumeErrorHandler {
|
||||
| 去重 `idempotent`(默认开启) | ✅(需 Redis) | ✅(需 Redis) |
|
||||
| 失败落库 `RETRY_EXHAUSTED`(需配 `errorHandler`,否则仅 ACK 丢弃) | ✅ | ✅ 落库+ACK |
|
||||
| 失败落库 `SINGLE` | ⚠️ 单条:落库+重投;批量:失败被吞(两端一致) | ⚠️ 单条:落库+重投;批量:失败被吞(两端一致) |
|
||||
| 批量 `batchSize` | ⚠️ core 内存攒批(driver 逐条喂);超时/停机强制刷出,仅 kill -9 丢未满批(两端一致) | ⚠️ core 内存攒批(driver 逐条喂);超时/停机强制刷出,仅 kill -9 丢未满批(两端一致) |
|
||||
| 批量 `batchSize` | ✅ core 内存攒批(driver 逐条喂);超时/停机强制刷出,仅 kill -9 丢未满批(两端一致) | ✅ core 内存攒批(driver 逐条喂);超时/停机强制刷出,仅 kill -9 丢未满批(两端一致) |
|
||||
| 重试 | ✅ PEL reclaim | ✅ 原生重投 |
|
||||
| 死信队列 | ❌ 只落库 | ⚠️ 原生 `%DLQ%` 通常被耗尽 ACK 旁路(InProgress 白跑烧光计数时仍会进) |
|
||||
| 顺序消息 | ❌ | ❌ 用的 Concurrently |
|
||||
|
||||
Reference in New Issue
Block a user