当前位置:首页 > 微服务 > 正文内容

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

关中浪子2年前 (2022-03-08)微服务1240
【腾讯云】2核2G4M云服务器新老同享99元/年,续费同价
找梯子最重要的就是稳定,这个已经上线三年了,一直稳定没有被封过,赶紧下载备用吧!

一致性:读操作总是能读取到之前完成的写操作结果,满足这个条件的系统称为强一致系统,这里的“之前”一般对同一个客户端而言;

可用性:读写操作在单台机器发生故障的情况下仍然能够正常执行,而不需要等待发生故障的机器重启或者其上的服务迁移到其他机器;

分区可容忍性:机器故障、网络故障、机房停电等异常情况下仍然能够满足一致性和可用性。


自己的理解:

一致性:

如下图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理论。


这里写图片描述

可用性:读写操作在单台服务器出问题后,在其他服务器上依然能够完成读写操作

重点在于:某个读写操作在出问题的机器上不能读写了,但是在其他机器可以完成


分区容错性:单台服务器,或多台服务器出问题(主要是网络问题)后,正常服务的服务器依然能正常提供服务,并且满足设计好的一致性和可用性

重点在于:部分服务器因网络问题,业务依然能够继续运行


这里写图片描述

这里写图片描述

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



扫描二维码推送至手机访问。

版权声明:本文由码农翻生发布,如需转载请注明出处。

本文链接:https://lubojian.cn/post/131.html

分享给朋友:

相关文章

网约车平台业务技术架构

网约车平台业务技术架构

在O2O 模式下,网约车平台成为其中最为经典的案例,无论是美国的 Uber 还是国内的滴滴都已经发展成为社会的基础设施。网约车平台的使用界面从这两大巨头的发展史来看,尽管前期它们都是利用补贴大战来完成对市场的占领的,但是随后它们也都专注于更...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。