Blog icon indicating copy to clipboard operation
Blog copied to clipboard

荐:微服务中怎么处理分布式事务?

Open vonzhou opened this issue 5 years ago • 0 comments

难度系数:☆☆☆

如果应用由单体架构演变成了微服务架构,都会涉及到分布式事务的问题。

  1. 2PC 两阶段提交

引入了事务管理器来管理多个参与者的事务生命周期:

优点:

  • 能保证事务的原子性
  • 读写隔离
  • 同步调用

缺点:

  • 比较重,依赖事务管理器
  • 可能会出现死锁
  1. 最终一致性和事务补偿

基于事件驱动的方式,每个服务基于事件/消息更新本地的数据/状态,然后发布新的事件。

优点:

  • 解耦
  • 每个服务关注自身的事务原子性
  • 异步调用,支持高可扩展

缺点:

  • 无读写隔离,会读到脏数据
  • 服务多的话难以维护

原文

image

vonzhou avatar May 25 '20 09:05 vonzhou