分布式事务理论—CAP与BASE
目录
1、什么是分布式事务
分布式事务指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。
简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器或不同的数据库上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。
本质上来说,分布式事务就是为了保证不同数据库的数据一致性。
2、分布式事务理论
2.1 ACID原则
A—原子性:事务中的操作要么全部成功,要么全部失败。
C—一致性:保证数据库内部完整性约束和声明性约束。
I—隔离性:对同一资源的事务不能同时发送。
D—持久性:对数据库的修改要永久保存。
2.2 CAP理论
CAP就是:一致性©、可用性(A)、分区容错性§,在分布式系统中,会出现分区问题所以是不存在同时满足三者的,一般都是需要牺牲强一致性
来换取系统的高可用性,系统往往只需要保证最终一致性即可。
- 分区:因为网络故障,导致分布式系统的中的某些数据节点与其他节点失去联系,形成独立的分区。
- 一致性( C ):用户访问分布式系统中,任意节点的数据必须一致。
- 可用性( A ):用户访问分布式系统中,任意健康节点时必须有数据返回。
- 分区容错性( P ):分布式系统中,某个数据节点出现问题时不影响正常的数据返回。
CAP使用场景:
- CA:保证一致性和可用性,在单机数据库情况下实现。
- CP:保证一致性和分区容错性,各子事务执行后互相等待,同时提交或回滚,达成强一致性。
- AP: 保证可用性和分区容错性,各子事务分开执行,允许数据临时不一致,实现最终一致,在
设计分布式系统时选择
。
2.3 BASE理论
BASE是指基本可用、软状态、最终一致性,基于CAP理论强调核心思想是不做强一致性,但是要求数据最终一致性
。
-
基本可用:允许系统在出现故障时损失一定的可用保证(高并发的降级/响应时间增加)
-
软状态:允许数据存在不影响系统可用性的中间状态(临时不一致状态)。
-
最终一致性:在一段时间处理后数据达到一致,而不需要实时保证系统的强一致性。
3、分布式事务的场景
- 单体系统访问多个数据库
一个服务需要调用多个数据库实例完成数据的增删改操作
- 多个微服务访问同一个数据库
多个服务需要调用一个数据库实例完成数据的增删改操作
- 多个微服务访问多个数据库
多个服务需要调用一个数据库实例完成数据的增删改操作