知识卡片
可靠事件模式用本地事务保证消息一致
内容
可靠事件模式结合本地事务与可靠消息:业务表与事件消息表放同一库,本地事务保证业务更改与事件插入的强一致;事件插入后由发布者轮询该表向消息队列发布,利用队列”至少一次”保证事件必达并被订阅;只要处理器对事件的处理幂等,就能保证可靠、最终一致。它要求上下文采用发布订阅,并增加本地事件表保证消息可靠。对DDD的影响就是增加事件的创建、存储、发布、订阅和删除。发散:巧在把跨库一致性转化为”同库本地事务+至少一次投递+幂等消费”三个已知可解的子问题。
参考来源
- 位置:《解构领域驱动设计》第18章《领域驱动设计的战略考量》18.4.3(源文件:_epub-src/OEBPS/031.xhtml)
- 结论依据:原文说明可靠事件模式用同库本地事务保证业务与事件插入一致、轮询发布、幂等消费达成最终一致,并需本地事件表。
- 原始内容:当前限界上下文的业务表与事件消息表位于同一个数据库,因此,本地事务就能保证业务数据更改与事件消息插入的强一致性……只要保证事件处理器对该事件的处理是幂等的,就能保证执行操作的可靠性和正确性。