用途:为事件驱动与基于消息的架构提供模式、保证与故障模式参考。
主要能力:
- 核心模式:发布/订阅(扇出通知、审计、多读模型)、事件溯源(用不可变事件序列存储状态并重放)、CQRS(写入模型与读取模型分离)、Saga(用本地事务加补偿操作协调跨服务流程)。
- 编排方式:编舞(各服务监听事件自主决策,适合少于4步)与编排(中心协调器驱动每步,适合超过4步的复杂流程)。
- 投递保证:至多一次(可能丢失)、至少一次(可能重复,需幂等消费)、精确一次(至少一次投递+幂等处理实现,而非仅靠 broker)。多数系统实用做法是至少一次加幂等消费者。
- 消费者幂等:幂等键(存已处理消息 ID,需 TTL 清理)、天然幂等操作、乐观并发(版本号/ETag)、去重窗口。
- 模式演进:事件即契约。向后兼容变更(新增带默认值的可选字段、新增事件类型)安全;删除、重命名、改类型、改语义为破坏性变更。策略含模式注册表、版本化事件、消费者驱动契约、读取时 upcasting。
- 死信队列:处理反复失败的消息,应包含原消息、错误详情、重试次数、时间戳、来源主题,并需要监控、告警、重放机制。
常见故障模式:毒消息、消费者滞后、顺序违规、重复处理、背压崩溃、脑裂。
反模式:事件汤、用事件做同步查询、胖事件、忽略顺序、无死信策略、把共享事件总线当集成层。
适用场景:需要审计、重放历史状态、多读模型、跨服务业务流程的系统设计。
限制:资料未提供具体安装或调用命令、代码示例、收费与平台信息,暂未提供。