generated from Meekdai/Gmeek-template
-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
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。