一、产生背景

  1. 业务服务化拆分,原本一个服务能完成的业务操作现在需要跨多个服务;分布式事务总结

  2. 分库分表,写操作可能跨多个数据库;分布式事务总结

二、理论基础

2.1 2PC协议

角色说明

  • 事务管理器:负责分布式事务的发起与结束,以及失败重试等(事务发起方);
  • 资源管理器:本地事务涉及资源的管理(事务参与方);

协议过程

  • 阶段一: 事务管理器开启分布式事务,通知资源管理器准备资源;(Prepare)
  • 阶段二: 事务管理器判断资源准备情况,如果所有资源管理器都已经准备好资源,则通知资源管理进行提交;否则,进行回滚;(Commit/Rollback)

分布式事务总结

2.2 TCC协议

  TCC协议是服务化的两阶段提交协议,通过改造业务逻辑实现数据最终一致性,原先一个服务接口需要改成try/confirm/cancel三个接口,每个接口作用如下:

  • try:检测预留资源;
  • confirm:真正的业务操作提交;
  • cancel:预留资源释放;

  以减库存场景为例,一阶段try接口的逻辑是检查库存是否充足,如果库存不足则返回错误;如果库存充足,则预扣库存(冻结或锁定的意思);二阶段,confirm接口则真正的扣除库存,cancel接口则是释放预扣的库存。TCC协议是BASE理论很好的说明,保证扣减库存服务可用的前提下,通过增加库存的临时状态,实现库存数据的最终一致性。
分布式事务总结

三、实践方案

3.1 事务消息

分布式事务总结

相关文章:

  • 2021-04-15
  • 2021-07-23
  • 2022-12-23
  • 2021-11-14
  • 2021-10-02
  • 2021-12-31
  • 2021-08-20
  • 2021-10-22
猜你喜欢
  • 2021-09-27
  • 2021-07-06
  • 2022-01-23
  • 2021-04-03
  • 2021-05-30
  • 2021-07-31
相关资源
相似解决方案