💻
Interview
  • README
  • notes
    • be_programmer
    • git
    • CAP 定理
    • istio
    • algorithm
    • Frontend
    • microservice
    • python_analyse
    • etcd
    • design_pattern
    • system
    • cncf
    • dkron
    • python_fool
    • talk
    • kafka
    • How-Does-the-Internet-Work
    • prometheus
    • go_interview
    • consul
    • elk
    • http
    • go
    • cicd
    • servicemesh
    • mysql
    • kubernetes
    • spider
    • zhongtai
    • docker
    • redis
    • api
    • monitor
    • python_interview
    • raft
    • algorithm_code
    • go_analyse
    • python
    • okr
    • kubernetes_vpa_hpa_ca
    • authentication
Powered by GitBook
On this page

Was this helpful?

  1. notes

CAP 定理

PreviousgitNextistio

Last updated 4 years ago

Was this helpful?

CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。

对于一个分布式系统,不能同时满足一下三点:

一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)

可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性)

分区容忍性(P):以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。

CAP原则的精髓就是要么AP,要么CP,要么AC,但是不存在CAP。如果在某个分布式系统中数据无副本, 那么系统必然满足强一致性条件, 因为只有独一数据,不会出现数据不一致的情况,此时C和P两要素具备,但是如果系统发生了网络分区状况或者宕机,必然导致某些数据不可以访问,此时可用性条件就不能被满足,即在此情况下获得了CP系统,但是CAP不可同时满足

  • 弱一致性

    最终一致性

    DNS(Domain Name System)

    Gossip(Cassandra的通信协议)

  • 强一致性

    同步

    Paxos

    Raft(multi-paxos)

    ZAB(multi-poxos)