分布式相关理论

CAP

  • C:Consistency(一致性)
    访问分布式系统的任何一个节点,得到的数据都是一样的(需要进行数据同步)
  • A:Availability(可用性)
    访问分布式系统中的任何一个健康节点,必须能得到响应,而不是超时或拒绝(需要确保网络畅通)
  • P:Partition tolerance(分区容错性)
    • 分区:分布式系统中部分节点由于发生网络故障或其他原因导致和其他节点失去连接,形成独立分区
    • 容错:出现独立分区时,整个系统也要持续对外提供服务

在分布式系统中,网络是一个不确定的因素,但是发生网络故障的时候,服务还要持续对外提供服务,所以分区容错性不可避免

假如网络不佳,导致有节点故障掉线,此时接收到新的数据变更时:

  • 如果要保证可用性,就不能等待网络恢复,那节点之间就会出现数据不一致的情况,因为数据同步需要时间
  • 如果要保证一致性,就必须等待网络恢复,完成数据同步后,整个集群才对外提供服务,在这个数据同步的过程中,服务暂时不可用

也就是说,在 P 一定出现的情况下,A 和 C 之间只能实现一个,要么 AP,要么 CP

BASE

BASE 是对 CAP 的一种扩展

  • Basically Available(基本可用):当分布式系统出现故障时,允许丢失部分可用性,保证核心业务可用
  • Soft State(软状态):在一定的时间内,允许出现数据不一致的状态
  • Eventually Consistent(最终一致性):当软状态结束后,确保数据最终是一致的

相关链接:分布式相关实践