Skip to content

CAP定理 #28

@huangxiaocheng93

Description

@huangxiaocheng93

CAP定理

CAP定理是现代分布式系统的理论基石。指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)最多能实现2个,不能3者兼顾。

  • 一致性(Consistency):所有数据节点在任意时刻数据都是一致的;
  • 可用性(Availability):在任何时间都处于可用状态,总是能对请求进行响应,而不阻塞或报错;
  • 分区容忍性(Partition tolerance):系统中分区间通信出现问题时或部分分区宕机时,活动的分区依然能够独立提供服务;

单机系统

单机系统由于只存在单节点,所以并不存在网络分区,所以单机系统中并不存在P,所以天然的能保证AC。

分布式系统

分布式系统的节点往往都是分布在不同机器上的,这意味着必然会有网络断开的风险,这个网络断开的场景就是网络分区,也就是说在分布式系统中分区容错性(P)是一定存在的,那么A和C就只能二选其一。

AP

AP系统放弃了强一致性,优先保证可用性,即网络分区发生后即使各个分区数据已经不一致依然提供服务;注意这里放弃强一致性,并不代表不要一致性了,而是保证最终一致性,优先保证可用性也不是一定能保证可用的,例如集群挂了。

典型的AP系统:Eureka, Redis, MySQL;

AP系统能提供较高的性能,和可用性,

CP

CP系统放弃了可用性,保证了一致性,即网络分区发生后停止服务,以此来保证数据的一致性。

CP系统:Zookeeper, Consul, etcd;

值得注意的是Nacos既可AP也可CP。

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions