分布式--Base理论

发布时间 2023-10-13 16:34:50作者: 木乃伊人

一、定义

      BASE 是 Basically Available(基本可用)Soft-state(软状态) 和 Eventually Consistent(最终一致性)

二、简介

       BASE理论本质上是对CAP的延伸和补充,是对CAP中的AP方案的一个补充,即在选择AP方案的情况下,如何更好地最终达到C。

              

 

      Basically Available(基本可用):出现故障的时候,允许损失部分可用性,即,保证核心可用

      场景:电商大促时,为了应对访问量激增,部分用户可能会被引导到降级页面,服务层也可能只提供降级服务。

     Soft-state(软状态):允许系统存在中间状态,而该中间状态不会影响系统整体可用性

      说明:软状态本质上是一种弱一致性,允许的软状态不能违背“基本可用”的要求。如,分布式存储中一般一份数据至少会有三个副本,允许不同节点间副本同步的延时(某些时刻副本数低于3)。

     Eventually Consistent(最终一致性):系统中的所有数据副本经过一定时间后,最终能够达到一致的状态

     说明:最终一致性强调的是系统中所有的数据副本,在经过一段时间的同步后,最终能够达到一个一致的状态。因此,最终一致性的本质是需要系统保证最终数据能够达到一致,而不需要实时保证系统数据的强一致性。

     分布式中的3种一致性:

      1、强一致性:系统中在某个节点中写入或修改了数据,那么之后再任意节点读取到的数据都是最新的数据。

      2、弱一致性:不一定能读到最新的值,也不能保证在一定时间后读取到的数据时最新的,只会尽量在某个时刻达到数据一致的状态。

      3、最终一致性:弱一致性升级版,可以保证在一定时间内达到数据的最终一致性。

      一般常用的事最终一致性,但是也有一些对一致性要求比较高的,比如银行的交易系统,这种要保证强一致性。

 三、小结       

        在分布式架构中,是无法脱离CAP理论的,因为网络永远不能100%可靠,硬件也会老化,软件可能出现BUG,所以分区容错性(Partition Tolerance)是避不开的,只要是分布式,只要是集群,都面临着选AP或者CP,如果你都想要,那只能对一致性做出一些妥协,也就是引入BASE理论,在业务允许的情况下实现最终一致性。

        究竟是选择AP还是CP,在于业务,比如涉及到金钱交易,库存相关的会优先考虑CP模型,而例如社区发帖,评论这种相关的可以选择AP模型。总之选什么模型是由业务来决定的。