Redis Streams × 消费组:在 ABP 中实现轻量事件流
目录
0) 摘要(TL;DR)
用 Redis Streams + Consumer Group 在 ABP vNext(.NET 8) 中实现一条轻量事件流通道:
- ✅ 单依赖、低时延;支持回溯重放、
XAUTOCLAIM
自动接管、DLQ 侧写、幂等去重、多租户隔离 - ️ 在 ABP 中以
IStreamBus
+BackgroundService
集成,配套 docker-compose、健康检查、Testcontainers 集成测试 - 与 Kafka/RabbitMQ的边界:Streams 献出有序追加日志 + 消费组位点与修剪;需要长期留存/生态/审计选 Kafka,复杂路由/协议/延迟队列选 RabbitMQ
- 关键命令:
XADD / XREADGROUP / XACK / XAUTOCLAIM / XGROUP / XINFO
1) 为什么选 Redis Streams(与 RabbitMQ/Kafka 的边界)
- 轻运维/单依赖:已有 Redis 的团队可直接获得持久队列语义、消费组位点与回溯能力
- 顺序与保留:流内有序 + 位点;配合
MAXLEN
/~
近似修剪控制容量;极长留存/跨域汇聚倾向 Kafka - 路由复杂度:复杂路由/延迟/优先级/多协议 → RabbitMQ;本文聚焦同域解耦 + 低时延 + 轻运维