分布式时系统/服务 数据一致性方案
原文:《以交易系统为例,看分布式事务架构的五大演进》http://www.tuicool.com/articles/jUVFBbb
原文结构:
- 概述
- 单数据库事务
- 基于后置提交的数据库事务
- 两段式事务
- TCC事务
- 最终一致性
介绍了分布式数据库/服务 ,数据一致性方案的演进,针对业务重要性及对一致性的要求,可使用不同的方案保证一致性。
主要有方案:
1. XA 事务,两段式事务:prepare提交--》confirm提交
prepare提交为重提交,成功后,confirm提交一般都会成功;
不足:极端情况下,第二个事务的confirm失败,导致第一个事务无法回滚。
使用:主流数据库 oracle,mysql支持
2. TCC, TRY-CONFIRM-CANCEL
编程模式,SOA服务提供3个接口完成事务;
不足:并发时性能较低
使用:强一致性场景
3. 最终一致性
概念:
强一致性: 请求结束,保证一致性;
最终一致性: 请求结束后,不保证一致性,由其它任务进行补偿/回退操作,保证一致性;
方案:
消息队列实时触发数据补偿;
定时任务触发数据补偿;