分布式系统中的CAP原理和最终一致性,强一致性

CAP原理中,有三个要素:

  • 一致性(Consistency)
  • 可用性(Availability)
  • 分区容错性(Partition tolerance)

    一致性(C):任何一个读操作总是能读取到之前完成的写操作结果,也就是在分布式环境中,多点的数据是一致的;

    可用性(A):每一个操作总是能够在确定的时间内返回,也就是系统随时都是可用的;

    分区容错性(P):在出现网络分区(比如断网)的情况下,分离的系统也能正常运行;

对于分布式存储系统而言,分区容错性(P)是基本需求,因此只有CP和AP两种选择。一个分布式系统不可能满足一致性,可用性和分区容错性这三个需求,最多只能同时满足两个。因此在进行分布式架构设计时,必须做出取舍。而对于分布式数据系统,分区容忍性是基本要求,否则就失去了价值。

利用redis分布式锁,是属于AP需求,但是分布式锁本质是属于CP需求。

二、CAS

Java1.5中还有一个CAS(Conmpare And Swap),它和上面的CAP没有任何联系,只是容易混淆,所以把它列出来。

CAS主要是用于实现多线程同步原子指令。它将内存位置的内容与给定值进行比较,只有在相同的情况下,将该内存位置的内容修改为新的给定值。 这是作为单个原子操作完成的。

猜你喜欢

转载自blog.csdn.net/jaryle/article/details/88119156