分布式场景下的事务方案

分布式场景下的事务方案

常用的分布式事务方案:

分布式事务处理分为补偿式与永不回滚方式,补偿的方式是对于单分片失败的,重复发起提交,保证最终一致性,如果存在无法提交的单分片事务,则回滚,

永不回滚的方式是目前阿里DRDS采用的,就是将事务采用分片的方式分隔,按业务顺序排序,异步提交,分片失败则继续发起提交,直到提交成功。


主要技术

优点

缺点

适用场景

XA with 2PC
(JTA)
3PC

 

事务管理最为严格,基本可以确保事务

对开发人员透明

性能差

实现复杂度高

可扩展性差

对事务要求苛刻,直接面向DB

TCC

事务管理较为严格,基本可以确保事务

对开发人员透明

性能差

可扩展性差实现复杂度高

未开放成熟方案与源码

对事务要求苛刻,直接面向DB

Best Efforts 1PC

事务管理较为严格,基本可以确保事务

对开发人员透明

性能差

可扩展性差

实现复杂度高

未开放成熟方案与源码

对事务要求苛刻,直接面向DB

Transaction Conpensation

采用最终一致性,性能高

可扩展性好

切换Proxy时,无须修改程序源码

 

对开发人员不透明,需要较多的编码

发生异常时可能需要人工干预

数据一致性的实时性较弱

数据分片

Proxy

长事务