CAP原则:
Consistency(一致性):一致性指写操作之后进行读操作,无论读哪个节点都要返回刚才写的值.即多个节点满足强一致性(等同于所有节点访问同一份最新的数据副本)
Availability(可用性):可用性指集群中一部分节点故障后,集群整体是否还能响应客户端的请求.即保证每个请求不管成功或者失败都有响应
Partition Tolerance(分区容错性):多个节点区间通信可能会失败,当系统中任意信息的丢失或失败,系统依然能继续运作
CAP原则的精髓就是要么AP,要么CP,要么AC,但是不存在CAP.如果在某个分布式系统中数据无副本,那么系统必然满足强一致性条件,因为只有独一数据,不会出现数据不一致的情况,此时C和P两要素具备,但是如果系统发生了网络分区状况或者宕机,必然导致某些数据不可以访问,此时可用性条件就不能被满足,即在此情况下获得了CP系统,但是CAP不可同时满足
BASE理论:
BASE理论是对CAP中的一致性及可用性进行一个权衡的结果,其核心思想是:我们无法做到强一致性,那么我们可以通过牺牲强一致性获得可用性,一般应用于服务化系统的应用层或者大数据处理系统中,采用适当的方式 达到最终一致性
Basically Available(基本可用):是对A(可用性)的一个妥协,假设系统,出现了不可预知的故障,可以降级处理,使核心功能可用,而不是所有的功能可用。或者延迟完成,比如通过削峰限流,来延迟响应
Soft State(软状态):允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性,即允许系统在多个不同节点的数据副本存在数据延时
Eventually Consistent(最终一致性):系统中所有的数据副本,在经过一段时间的同步后,最终能够达到一个一致的状态而不需要实时保证系统数据的强一致性