zoukankan      html  css  js  c++  java
  • CAP定理

    概念

    在分布式系统中最多具有 数据一致性(Consistence) 可用性(Availability) 网络分区容错(Partition tolerance)中的两个

    网络分区容错

    分布式节点之间的网络延迟 或者通信故障不影响分布式系统的服务运行 这一点是必须的

    一致性

    系统中的各个节点 所存储的信息是完全同步的

    举例1:`zookeeper`各个节点的信息是完全同步的
    举例2:`mysql`主从复制设置全同步 主库写入需要等待多个从库`全部`写入成功之后才会返回成功 否则写入失败
    

    可用性

    客户端每次访问总能返回需要的数据即使数据不是最新的 在springcloud中服务发现尤为重要
    在网络分区节点通信有延迟的情况下 在主节点不需要等待从节点完全写入成功 允许短暂的时间内数据是不一致的但是最终的数据是保持一致的

    举例1:mysql主从同步 主节点设置不需等待从节点同步成功 只要主节点写入成功立即返回不等待从库 ,读写分离的情况下是无法立即从 从库中查询出来的 ,
    如果有重复插入校验就只能从主库查询,减少了sql等待时间,mysql可以设置半同步 等待多个节点中的一个写入成功后即返回成功
    举例2;Eureka服务相互注册没有主从 因为网络延迟导致各个节点的数据在写入瞬间不一致,这对客户端访问请求没有影响 因为服务都是可用的
    

    因为P的存在 导致 CA只能二选一 即发生P故障 选择保证数据一致性 写入数据时 要么迅速失败

    或者为了保证可用性要允许主从节点短暂时间内数据不一致

  • 相关阅读:
    ping 介绍
    密码学系列——简介密码学
    ActiveMQ c# 系列——进阶实例(三)
    转:LVS简介
    口罩与mask------看东西方文化差异
    Java设计模式之单利模式(Single Pattern)
    Cadence OrCAD Cpature创建Title Block
    终极干货,数组去重且显示每一个数据重复的次数
    LeetCode 64. 最小路径和 | Python
    LeetCode 剑指 Offer 11. 旋转数组的最小数字 | Python
  • 原文地址:https://www.cnblogs.com/cu-later/p/13831067.html
Copyright © 2011-2022 走看看