• 了解 CAP


    CAP是分布式系统最基础的理论,CAP分别表示三个特性:

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

    一个分布式系统最多满足其中两个特性,无法同时满足三个特性,这就是CAP理论。

    特性介绍

    Consistency

    一致性就是无论从哪个节点读取的数据应该都是相同的、最新的。

    Availability

    可用性就是任何时候的请求都可以获得正确的响应,但是不保证获取的数据为最新数据。

    Partition tolerance

    • 什么是分区?

      一个分布式系统里面,节点组成的网络本来应该是连通的。然而可能因为一些故障,使得有些节点之间不连通了,系统不能在一定时限内达成数据一致性,我们就称网络产生了分区。

    分区容错性就是指网络出现分区后,系统仍能正常工作,即系统能够容忍节点之间的网络通信的故障。提高分区容错性的方法就是将数据复制存储在多个节点上。

    数据复制存在的节点越多,分区容错性越高,但是要复制的数据就越多,一致性就越难保证。而要保证一致性,那么系统达到一致性的时间就越久,可用性就越差。

    如果要满足分区容错性,就必须在多台机器上备份数据,因此只要是分布式系统,可以理解为就必须满足分区容错性。

    无法同时满足

    上述说到分布式系统一般满足分区容错性,那我们看看为什么不能同时满足C和A。

    假设系统有两个节点S1、S2,C是访问客户端。

    • 若满足一致性,假设C给S1更新值,那么S1要将值同步到S2,这需要一定时间,或者出现网络故障,可能需要更长的恢复时间,在系统未达到完全一致的这段时间内,无法对外提供服务,即不满足可用性。

    • 若满足可用性,即S1还未更新到S2这段时间内也可对外提供服务,那么则没满足一致性。

    如何选择

    • 不要 P,不满足 P 的系统不是分布式系统。
    • 不要 C,即满足可用性损失一定一致性。这是互联网环境下最多的使用场景,优先满足系统高可用,损失短暂的一致性,但随着节点同步系统会最终恢复一致性。
    • 不要 A,即满足一致性损失一定可用性。这只在数据一致性要求比较高的场合下应用,如 zookeeper、Hbase。
  • 相关阅读:
    2019年牛客多校第一场 E题 ABBA DP
    2019年牛客多校第一场 B题 Integration 数学
    Codeforces Round #574 (Div. 2)题解
    Justice(HDU6557+2018年吉林站+二进制)
    Strength(HDU6563+2018年吉林站+双指针瞎搞)
    Lovers(HDU6562+线段树+2018年吉林站)
    The Tower(HDU6559+2018年吉林站+数学)
    Good Numbers(HDU5447+唯一分解)
    [iOS]C语言技术视频-01-变量的定义
    [Unity]Unity开发NGUI代码实现ScrollView(放大视图)
  • 原文地址:https://www.cnblogs.com/cpcpp/p/15584667.html
Copyright © 2020-2023  润新知