feat(mq-starter-redis-stream): 订阅 stream 定时裁剪,复用 redis-stream.trim.* 默认开启
底层中间件的 trim 任务只认自己注册的 handler(无 handler 不启动),mq-starter 不走 handler 体系,此前只经 mq-starter 收发的 topic 无界涨 Redis 内存。driver 现自带 RedisStreamTrimScheduler:订阅时登记 stream,按 trim.interval-ms(默认 60s)对登记过的 stream 执行 XTRIM MAXLEN ~ maxlen(默认 10 万),stop 时随 driver 停止。 - maxlen<=0 视为关闭(XTRIM 0 会清空整条 stream,绝不能发出) - 只裁订阅过的 stream,纯发送方不裁,与中间件 handler 即消费者的语义对齐 - 单 stream 裁剪失败仅 WARN,不中断其余 stream - README trim/autoclaim 行改述真实行为,CLAUDE.md 模块描述同步 注意:默认开启,升级后订阅 stream 开始按 maxlen 封顶;裁剪不看消费进度, 堆积超限时最老的未消费消息会被删,容量按可容忍停机时长×生产速率估算。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -32,7 +32,7 @@ mvn -pl mq-starter-core test -Dtest=MqConsumeDispatcherTest#someMethod # 单个
|
||||
```
|
||||
mq-starter-core 门面 + 注解扫描 + 消费链 + SPI 契约(中立,不依赖 Spring/Redis 的核心编排逻辑,可纯单测)
|
||||
mq-starter-idempotent-redis 消费去重的 Redis 存储(driver 中立,不按 mq.type 门控;任何 driver 有 Redis 就能用)
|
||||
mq-starter-redis-stream Redis Stream driver(去重/批量/落库/reclaim 重试/tag 消费端过滤全接入;去重 store 依赖 idempotent-redis 模块)
|
||||
mq-starter-redis-stream Redis Stream driver(去重/批量/落库/reclaim 重试/tag 消费端过滤/订阅 stream 定时裁剪全接入;去重 store 依赖 idempotent-redis 模块。裁剪复用底层 redis-stream.trim.* 配置、默认开启,maxlen<=0 关,只裁订阅过的 stream——中间件自己的 trim 任务只认它的 handler,对 mq-starter 无效)
|
||||
mq-starter-rocketmq RocketMQ driver(收发 + 原生重试/死信 + RETRY_EXHAUSTED 落库 + 去重信号处理;去重 store 经聚合坐标间接获得)
|
||||
mq-spring-boot-starter 聚合 jar,业务方只引这一个(恒含 idempotent-redis)
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user