• 分布式理论


    一、一致性

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

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

  • 相关阅读:
    内网渗透学习 day1
    Footprint_Expert_2022-04_Pro 可以产生 cadence SPB16.6的封装
    【博客508】vxlan 网络怎么感知彼此的存在并选择正确的路径传输报文
    SpringCloud-12-Eureka:自我保护机制
    WebRTC AIMD算法用处
    java毕业设计打车拼车系统服务端Mybatis+系统+数据库+调试部署
    【算法】栈和队列常见算法
    MT管理器和高级终端Termux
    学习笔记(1)元素,列表,表格,表单,
    前端面试宝典React篇05 如何设计 React 组件?
  • 原文地址:https://blog.csdn.net/sumengnan/article/details/125433941