微服务 - 分布式事务


分布式事务方案选型

  • 强一致性:两阶段、三阶段提交协议
  • 最终一致性:TCC、可靠消息投递模式、补偿对账模式

可靠消息投递模式(可靠事件模式)

方案特点:正反向消息机制,补偿=》重新投递

步骤原理:

1、生产者服务插入跨DB事务消息,到本地数据库消息表

2、生产者服务发送消息到消息队列

3、消费者服务从消息队列获取消息,ACK确认从消息队列移除消息

4、插入本地判重表,执行完成,再次发送返回消息给消费队列

5、生产者取消费者ACK消息消息

6、更新本地消息表消息状态已完成

7、本地定时任务取超时消息,重新发送

通用异步架构设计

 两个MQ消费端作业: 消费端消费消息,生产者接受处理完成的消息

 一个定时补偿作业:扫描超期消息,重新发送

 1、生产者:

实时接口调用:基于不同微服务(跨DB) 记载异步本地消息,记载请求事件

消费者确认消息作业:取MQ完成消息,更新本地消息表完成

定时任务:定时取生产者消息过期任务,重新发送消息;

 2、消费者:

消费者消费MQ作业:轮训MQ消息,如果本地判重表不存在,插入本地判重表和本地线程池

线程池定时任务根据不同的请求事件类型,不断调用消费者不同业务服务并行消费;

消费完发送消费完成消息给生产者

相关