分布式事务理论
CAP定理(CAP theorem)
在理论计算机科学中,CAP定理(CAP theorem),又被称作布鲁尔定理(Brewer's theorem),它指出对于一个分布式计算系统来说,不可能同时满足以下三点
选项 | 具体意义 |
---|---|
一致性(Consistency) | 所有节点访问同一份最新的数据副本 |
可用性(Availability) | 每次请求都能获取到非错的响应,但是不保证获取的数据为最新数据 |
分区容错性(Partition tolerance) | 分布式系统在遇到任何网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务,除非整个网络环境都发生了故障 |
而CAP指的就是上述三个指标的首字母
一般是满足CP 或 AP 其中AP居多(P是分布式系统的基本要求)
BASE理论
如前文中说CAP定理是三个单词的缩写,BASE也是一样,是由Basically Available(基本可用),Soft state(软状态),和 Eventually consistent(最终一致性)三个短语的缩写。
Basically Available(基本可用)
基本可用是相对于正常的系统来说的,常见如下情况
- 响应时间上的损失:正常情况下的搜索引擎0.5秒即返回给用户结果,而基本可用看的搜索结果可能要1秒,2秒甚至3秒(超过3秒用户就接受不了了)
- 功能上的损失:在一个电商网站上,正常情况下,用户可以顺利完成每一笔订单,但是到了促销时间,可能为了应对并发,保护购物系统的稳定性,部分用户会被引导到一个降级页面
Soft state(软状态)
软状态是相对原子性来说的(比如支付中的状态)
- 原子性(硬状态) -> 要求多个节点的数据副本都是一致的,这是一种"硬状态"
- 软状态(弱状态) -> 允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性,即允许系统在多个不同节点的数据副本存在数据延迟
Eventually consistent(最终一致性)
弱一致性
和强一致性相对
系统并不保证连续进程或者线程的访问都会返回最新的更新过的值。系统在数据写入成功之后, 不承诺立即可以读到最新写入的值,也不会具体的承诺多久之后可以读到。但会 尽可能保证在某个时间级别(比如秒级别)之后,可以让数据达到一致性状态。最终一致性是弱一致性的特定形式
base理论实际上就是 AP+中间状态
分布式事务的实现理论
2PC 两段提交协议 (阿里seata)
TCC (try confirm cancel) 协议
上面两种强一致性
最终消息一致
最大努力通知
上面两种若一致性
参考
https://segmentfault.com/a/1190000018011851