一致性(Consistency),可用性(Avilable),分区容错性(Tolerance of network Partition)

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

自己的理解:
一致性:
如下图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理论。
这里写图片描述

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

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

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

附录:书名《从Paxos到Zookeeper》

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/164321.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • noscript 标签

    noscript 标签noscript标签中的元素中的内容只有在下列情况下才会显示出来:浏览器不支持脚本浏览器支持脚本,但脚本被禁用noscript标签是一个相当古老的标签,其被引入的最初目的是帮助老旧浏览器的平滑升级更替,因为早期的浏览器并不能支持JavaScript。noscript标签在不…

    2022年10月24日
  • msp430怎么用ccs下载代码(核心板开发)

    工作空间WORKSPACE工程PROJECT文件FILES避免中文字符切换工作空间软件会重新启动一次文件->切换工作空间文件名不能重复导入新的工程可以在文件中的import中导入,也可以在project中的导入要点击copyproject的选项对于工程的相关操作激活工程编译工程调试工程新建工程:创建一个新的空工程之后:要在里面加入相应的文件基本操作界面运行/停止程序设置断点分步运行查看变量查

    2022年4月10日
  • Redis除了做缓存,还可以怎么用?网友:点赞功能啊

    点赞功能是目前app开发基本的功能 今天我们就来聊聊点赞、评论、收藏等这些场景的db数据库设计问题~ 1. 我们先来看看场景的需求: 显示点赞数量 判断用户是否点过赞,用于去重,必…

    2021年6月22日
  • 五步搞定Android开发环境部署——非常详细的Android开发环境搭建教程

    五步搞定Android开发环境部署——非常详细的Android开发环境搭建教程在windows安装Android的开发环境不简单也说不上算复杂,本文写给第一次想在自己Windows上建立Android开发环境投入Android浪潮的朋友们,为了确保大家能顺利完成开发环境的搭建,文章写的尽量详细,希望对准备进入Android开发的朋友有帮助。本教程将分为五个步骤来完成Android开发环境的部署。第一步:安装JDK。第二步:配置Windows上JDK的变量环…

    2022年7月23日
  • 怎么把浏览器ua改成PC就可以了_手机自带浏览器怎么改成电脑版

    怎么把浏览器ua改成PC就可以了_手机自带浏览器怎么改成电脑版第一种方法:修改浏览器的快捷方式右击桌面上的Chrome浏览器图标,在弹出的右键菜单中选择“复制”,复制一个图标副本到桌面。右击该副本,选择“属性”,打开相应的对话框,在“目标”文本框的字符后面添加

    2022年8月2日
  • 报表数据填报中的合法性校验

    报表数据填报中的合法性校验

    2021年6月18日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号