zoukankan      html  css  js  c++  java
  • 转 一致性(Consistency),可用性(Avilable),分区容错性(Tolerance of network Partition)

    原博地址: https://blog.csdn.net/zhangyufeijiangxi/article/details/78286364

    网络摘抄理解:
    一致性:读操作总是能读取到之前完成的写操作结果,满足这个条件的系统称为强一致系统,这里的“之前”一般对同一个客户端而言;
    可用性:读写操作在单台机器发生故障的情况下仍然能够正常执行,而不需要等待发生故障的机器重启或者其上的服务迁移到其他机器;
    分区可容忍性:机器故障、网络故障、机房停电等异常情况下仍然能够满足一致性和可用性。

    自己的理解:
    一致性:
    如下图1中所示,Client A负责更新数据,为了保证Server 1和Server 2上的数据是一致的,Client A会将X=1的写操作同时发给Server 1和Server 2,但是当Client A和Server 2之间发生网络分区(网络无法连接)时,此时如果让write X=1的写操作在Server 1上成功,那Client B和Client C将从Server 1和Server 2上读取到不一致的X值;此时如果要保持X值的一致性,那么write X=1的写操作在Server 1和Server 2上都必须失败,这就是著名的CAP理论:在容忍网络分区的前提下,要么牺牲数据的一致性,要么牺牲写操作的可用性。
    这里写图片描述
    解决这个问题你可能会想到让Client C同时读取Server 1和Server 2上的X值和版本信息,然后取Server 1和Server 2最新版本的X值, 如下图2所示。但Client C和Server 1之间也可能发生网络分区,这本质上是牺牲读可用性换取写可用性,并没有突破CAP理论。
    这里写图片描述

    可用性:读写操作在单台服务器出问题后,在其他服务器上依然能够完成读写操作
    重点在于:某个读写操作在出问题的机器上不能读写了,但是在其他机器可以完成

    分区容错性:单台服务器,或多台服务器出问题(主要是网络问题)后,正常服务的服务器依然能正常提供服务,并且满足设计好的一致性和可用性
    重点在于:部分服务器因网络问题,业务依然能够继续运行

    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述

  • 相关阅读:
    JavaScript--DOM修改元素的属性
    JavaScript---DOM文档
    SQL查询语言练习
    SQL Server视图复习
    SQL Server存储过程复习(一)
    SQL Server中的连接查询【内连接,左连接,右连接,。。。】
    Linq查询简介
    CSS--选择器
    csharp:Conversion Between DataTable and List
    csharp: Linq keyword example
  • 原文地址:https://www.cnblogs.com/frank2015/p/9554180.html
Copyright © 2011-2022 走看看