<返回更多

分布式基础之CAP

2019-10-22    
加入收藏

CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容忍性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。

分布式基础之CAP

 

Consistency

数据一致性,及系统只读到最新写入的数据,如:单点串行化的方式,就能达到一致性效果。

单机架构保持一致性:

分布式基础之CAP

 

分布式架构数据同步失败,无法保持数据一致性:

分布式基础之CAP

 

举个栗子:你去租房的时候都会去找地产中介(某链),你找到了A小区的门店发现没有需要的房源,然后去B小区的门店发现有个房源很适合你,这就可以理解为两个门店信息不一致,及不满足一致性要求,但实际上你会遇到这种情况,你去A小区门店询问的时候,有你需要的房源,然后他们会去B小区的门店拿钥匙,这是因为房东把房源交给了B小区门店,然后A小区的门店同样同步的B门店的房源,这样就满足一致性的要求。

Availability

如果每运行100个时间单位,有1个时间单位不可用,则说系统的可用性是99%。

分布式基础之CAP

 

如上图服务A可能由于网络原因导致不可用,但是B、C还是可以继续服务的,但是在反向代理那个位置发生了故障那系统都不可用了,它不是高可用的。

举个栗子:还是以租房为例,你去租房的时候发现A小区的门店今天关门了,然后直接去了B小区的门店发现他们正常工作的,这就满足了可用性的要求,如果去B小区或其他门店都没有正常工作,那这家地产商可能倒闭了,没法对客户提供可用性的服务了。

Partition tolerance

分布式系统,大多都是很大个节点,第个节点节点之前都不是完全独立的,需要相互通信,当发生节点无法连通时,系统如何进行容错处理,是需要考虑的。

举个栗子:C小区新增加了一个门店,装修啥的都弄好了,就是没拉网线,没有连通性,等于就是个孤立的门店,店员只能大眼瞪小眼,没得事做。那你去A门店找房源,那里的人可能都不知道有C小区这个门店,所以A直接带你去了C小区看房子了。

总结

一致性,可用性,分区容忍性三者只能取其二,常见的最佳工程架构实践是什么呢? 最常见的实践是这样的:

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>