分布式事务采用本地消息表(异步确保)作为主要解决方法之一
发布时间
阅读量:
阅读量
本地消息表与业务数据表共同存储于同一数据库内,这使得能够借助本地事务机制确保对这两张表的操作符合事务的特性,同时结合消息队列实现系统的最终一致性。
- 当分布式事务操作的一方完成对业务数据的写入后,会向本地消息表发送一条消息,本地事务机制可确保该条消息必定被成功记录至本地消息表中。
- 接着,将本地消息表中的信息转发至如 Kafka 等类型的消息队列中。若转发过程顺利完成,则从本地消息表中移除该条信息;若转发失败,则持续尝试重新发送。
- 分布式事务操作的另一方会从消息队列中获取一条信息,并根据该信息内容执行相应的操作。

如上图示:
message存在以下4种状态
status 0:初始状态
status 1:publisher接收到broker确认消息后的状态
status 2:消息被consumer成功消费后的状态
status 3:异常状态,需人工介入处理
步骤如下:
step 1:message入库(存储至db),初始 status 设置为 0
step 2:publisher将message发送至 broker
全部评论 (0)
还没有任何评论哟~
