• 分布式理论


    一、一致性

    基于集群角度来考虑,如果集群中同步慢,会有多种情况

    1、强一致性:集群中的两个节点数据必须一致

    例如:从A节点新增一条数据后,我从B节点必须能够读到此数据,才算满足强一致性。通常使用分布式锁达到强一致性。代表算法为:paxos算法

    2、弱一致性:集群中的两个节点数据可以不一致

    相当于不需要一致性。

    3、最终一致性:

    通常遇到的都是最终一致性。

    例如:从A节点新增一条数据后,我从B节点暂时没有读取到,稍后我读取到了,这就算满足了最终一致性。

    包括mysql中的主从同步。

    二、CAP理论

    在设计和部署分布式系统时,存在三个明显的需求:

    1. C(Consistency)一致性。即分布式数据应该同步,保存一致。
    2. A(Availability)可用性。指系统能够很好的为用户提供服务,主要体现在用户访问之后能很
    3. 快的得到响应。
    4. P(Oartition Tolerance)分区容错性。若在系统运行过程中,有部分主机宕机,依然不会影响整个系统的运行。

    CAP理论认为在一个系统中对某个数据不存在一个算法同时满足一致性,可用性,分区容错性。往往需要牺牲某一项来满足其他两项。

    • 满足CA的例子:MySQL
    • 满足CP的例子:Zookeeper(先同步数据,成功后再返回客户端响应)
    • 满足AP的例子:Eureka、redis(先返回客户端响应,再同步数据)

    由于CAP定理限制了我们三者无法同时满足,这种情况,我们会选择尽量靠近CAP定理,即尽量让C、A、P都满足,在此大势所趋下,出现了BASE定理。

    三、BASE理论

    1. Basically, Available(基本可用),支持分区失败。也就是说,在一定程度上牺牲了可扩展性。例如:响应时间变慢,限流,降级等
    2. Soft State(软状态),状态可以有一段时间不同步,异步同步。(允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性)
    3. Eventually Consistent(最终一致)。保证数据在最终是一致的,而无需保证实时数据一致。通常用mq来实现

    BASE理论的核心思想:即使无法做到强一致性,但每个应用都可以根据自身业务特点,采用适当的放松来使系统达到最终一致性

  • 相关阅读:
    专题 递归与递推
    mysql语句
    国产蓝牙耳机哪个牌子好?国产蓝牙耳机质量排行榜
    实现联系人前后端界面,实现分页查询04.15
    Kubernetes技术与架构-14
    标点符号应该占在作文本的什么位置
    c++ 田忌赛马(史上最全)上海月赛乙组T3
    那些SAP项目里的主流外围系统
    突破瓶颈:如何应对高级职位的面试
    super关键字
  • 原文地址:https://blog.csdn.net/sumengnan/article/details/125433941