微服务架构下的数据一致性

TCC 模式(try confirm cancel)

一个完整的 TCC 业务由一个主业务服务和多个从业务服务组成,主业务服务发起并完成整个业务活动,TCC 模式要求从服务提供三个接口:try、confirm、cancel

  1. try,完成业务检查,预留必须的业务资源
  2. confirm,真正执行业务,使用 try 阶段预留的业务资源,满足幂等性
  3. cancel,释放 try 阶段的预留资源,满足幂等性

TCC 分为两个阶段完成

  1. 主业务方分别调用所有从业务的 try 操作,并在活动管理器中登记所有从业务服务。当所有从业务服务的 try 操作都完成后(不论成功或者失败),进入第二阶段
  2. 活动管理器根据第一阶段的执行结果来执行 confirm 或 cancel 操作。第一阶段都成功则调用 confirm 操作,否则调用 cancel 操作。

可靠事件模式

可靠事件模式属于事件驱动架构,通过消息中心解耦分布式架构中的各业务系统。如:更新业务实体后,向消息中心发布一件事件。消息的消费方会订阅事件后完成自已的业务,也有可能会发布更多的事件。

关键点

可靠事件模式的关键点在于可件投递和避免重复消费

  1. 每个服务需要原子性的进行业务操作和发布消息,可使用支持消息事务的 MQ 或者使用本地日志表。
  2. 事件的消费方需要保证服务幂等

异常处理

可靠事件的异常应该分为业务异常和技术异常两种

ohfree9

继续阅读此作者的更多文章