网站优化用户体验,快速免费做网站,沧浪公司网站建设电话,互联网网站建设水平文章目录 1. CAP定理1.1 一致性1.3 分区容错1.4 矛盾 2. BASE理论3. 解决分布式事务的思路4. 扩展 解决分布式事务问题#xff0c;需要一些分布式系统的基础知识作为理论指导。
1. CAP定理 Consistency(一致性): 用户访问分布式系统中的任意节点#xff0c;得到的数据必须一… 文章目录 1. CAP定理1.1 一致性1.3 分区容错1.4 矛盾 2. BASE理论3. 解决分布式事务的思路4. 扩展 解决分布式事务问题需要一些分布式系统的基础知识作为理论指导。
1. CAP定理 Consistency(一致性): 用户访问分布式系统中的任意节点得到的数据必须一致 Availability可用性: 用户访问集群中的任意健康节点必须能得到响应而不是超时或拒绝。 Partition(分区): 因为网络故障或其它原因导致分布式系统中的部分节点与其它节点失去连接形成独立分区。 tolerance(容错): 在集群出现分区时整个系统也要持续对外提供服务 结论: CP : 强一致性,弱可用性(牺牲部分机器的可用性,保证数据一致性) AP : 强可用性,弱一致性(牺牲一致性,保证可用性) 1998年加州大学的计算机科学家 Eric Brewer 提出分布式系统有三个指标。
Consistency一致性Availability可用性Partition tolerance 分区容错性 它们的第一个字母分别是 C、A、P。
Eric Brewer 说这三个指标不可能同时做到。这个结论就叫做 CAP 定理。
1.1 一致性
Consistency一致性用户访问分布式系统中的任意节点得到的数据必须一致。
比如现在包含两个节点其中的初始数据是一致的 当我们修改其中一个节点的数据时两者的数据产生了差异 要想保住一致性就必须实现node01 到 node02的数据 同步 ## 1.2 可用性
Availability 可用性用户访问集群中的任意健康节点必须能得到响应而不是超时或拒绝。
如图有三个节点的集群访问任何一个都可以及时得到响应
当有部分节点因为网络故障或其它原因无法访问时代表节点不可用 1.3 分区容错 Partition分区因为网络故障或其它原因导致分布式系统中的部分节点与其它节点失去连接形成独立分区。 Tolerance容错在集群出现分区时整个系统也要持续对外提供服务 1.4 矛盾
在分布式系统中系统间的网络不能100%保证健康一定会有故障的时候而服务有必须对外保证服务。因此Partition Tolerance不可避免。
当节点接收到新的数据变更时就会出现问题了 如果此时要保证一致性就必须等待网络恢复完成数据同步后整个集群才对外提供服务服务处于阻塞状态不可用。
如果此时要保证可用性就不能等待网络恢复那node01、node02与node03之间就会出现数据不一致。
也就是说在P一定会出现的情况下A和C之间只能实现一个。 2. BASE理论 BASE理论是对CAP的一种解决思路包含三个思想
Basically Available 基本可用分布式系统在出现故障时允许损失部分可用性即保证核心可用。Soft State软状态 在一定时间内允许出现中间状态比如临时的不一致状态。Eventually Consistent最终一致性虽然无法保证强一致性但是在软状态结束后最终达到数据一致。 3. 解决分布式事务的思路
分布式事务最大的问题是各个子事务的一致性问题因此可以借鉴CAP定理和BASE理论有两种解决思路 AP模式各子事务分别执行和提交允许出现结果不一致然后采用弥补措施恢复数据即可实现最终一致。 CP模式各个子事务执行后互相等待同时提交同时回滚达成强一致。但事务等待过程中处于弱可用状态。
但不管是哪一种模式都需要在子系统事务之间互相通讯协调事务状态也就是需要一个事务协调者(TC) 这里的子系统事务称为分支事务有关联的各个分支事务在一起称为全局事务。 4. 扩展 ES 是 CP 为主ES集群有节点发生故障 会剔除故障节点数据会重新分配到其他节点这个过程集群是不可用的保证数据的一致性。因此是低可用性、高一致性。
Eureka 是 AP。
Nacos 是有 CP 和 AP 都支持默认AP。