分布式系统的节点往往都是分布在不同机器上的,这意味着必然会有网络断开的风险,这个网络断开的场景就是网络分区。
CAP原则:CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)最多能实现2个,不能3者兼顾。
- 一致性(Consistency):所有数据节点在任意时刻数据都是一致的。
- 可用性(Availability):在任何时间都处于可用状态,总是能对请求进行响应,而不阻塞或报错。
- 分区容忍性(Partition tolerance):系统中分区间通信出现问题时或部分分区宕机时,活动的分区依然能够独立提供服务,简单点说就是各个分区都要存有全量的数据。
这三要素最多只能实现两点,不可能三者兼顾。但是目前分布式系统中P是必须的。 因此也就分为了AP和CP系统。
AP系统放弃了一致性,保证可用性,即网络分区发生时即使各个分区数据已经不一致依然提供服务。
CP系统放弃了可用性,保证了一致性,即网络分区发生时停止服务,以此来保证数据的一致性。
提高分区容忍性的方法就是复制更多的节点,但是节点越多一致性就越难保证。