CAP理论
2021-01-12 本文已影响0人
倚仗听江
1. CAP理论
CAP理论指的是一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。
image.pngC - Consistency:
一致性是指写操作后的读操作可以读取到最新的数据状态,当数据分布在多个节点上,从任意结点读取到的数据都是最新的状态。(数据的一致性,可以返回失败,但是只要读到了数据就必须保证读到的数据是最新的)
A - Availability :
可用性是指任何事务操作都可以得到响应结果,且不会出现响应超时或响应错误。(我不管读到的数据是不是最新的,你必须保证我能读到数据,每个节点都要能对外提供服务)
P - Partition tolerance :
通常分布式系统的各各结点部署在不同的子网,这就是网络分区,不可避免的会出现由于网络问题而导致结点之间通信失败,此时仍可对外提供服务,这叫分区容错性。(分布式系统具备的基本能力,一个节点挂了不会影响其他节点)
2. CAP的组合
在所有分布式事务场景中不会同时具备CAP三个特性,因为在具备了P的前提下C和A是不能共存的。(当满足P的情况下,为了保证数据的一致性,在同步的时候我需要锁定数据库,但此时如果有其他线程来读,就读不到数据,这就不满足可用性,所以在具备了P的前提下C和A是不能共存的)
3. 总结
对于多数大型互联网应用的场景,结点众多、部署分散,而且现在的集群规模越来越大,所以节点故障、网络故障是常态,而且要保证服务可用性达到N个9(99.99..%),并要达到良好的响应性能来提高用户体验,因此一般都会做出如下选择:保证P和A,舍弃C强一致,保证最终一致性。