分布式事务的一些概念
分布式事务的概念
数据库的四大概念ACID
- 原子性
- 一致性
- 隔离性
- 持久性
分布式事务的基础CAP
cap定理 布鲁尔定理,对于分布式系统(不仅是分布式数据库)架构来说,cap是入门理论
- 一致性:各个分布式节点数据一致
- 可用性:非故障的节点在合理时间返回合理响应。
- 分区容错:网络故障后,系统能够继续工作。有一台出现网络故障系统能继续运行。
cap理论中是忽略网络延迟,也就是当事务提交时,从节点a复制到节点b没有延迟。这显然不可能,所以总有一段时间是不一致的
BASE
basic avaliable(基本可用) soft state(软状态) eventually consistent(最终一致)
基本可用:出现网络故障,允许损失部分可用功能,核心功能可用。
软状态:允许系统存在中间转态,这个状态不影响系统一致性。
最终一致:经过一段时间后所有节点数据一致。
首先要确定是否真的需要分布式,任何一种复杂设计都会增加系统的复杂度和错误率
分布式事务模式
2pc 两阶段提交
缺点:尽量实现数据的强一致性,实现成本低,数据库都有自己的实现 mysql 5.5+
确点:
- 单点问题:事务协调者的故障
- 性能问题:同步阻塞
- 数据不一致:参与者故障
TCC
tcc 2007 年提出 适合 强隔离性,严格数据一致性活动业务;执行时间较短的业务 例如银行金融业务
本地消息表
ebay的解决方案
MQ事务
对前者的服务队列化,将本地消息表移到了MQ内部