银川建网站,厦门优秀的网站设计,云南省网站建设收费调查报告论文,wordpress 下载的主题插件在俺儿为什么CAP不能同时满足的简单理解
cap定理#xff1a;前提是分布式系统中#xff0c;cap三个只能满足两个#xff0c;不能同时满足三个特性。
Consistency (一致性)#xff1a;所有节点在同一时间的数据都是完全一致的。 Availability (可用性)#xff1a;服务一直是可用…为什么CAP不能同时满足的简单理解
cap定理前提是分布式系统中cap三个只能满足两个不能同时满足三个特性。
Consistency (一致性)所有节点在同一时间的数据都是完全一致的。 Availability (可用性)服务一直是可用的。 Partition Tolerance (分区容错性): 分布式系统在某个节点或分区故障时仍然能对外提供满足一致性或可用性的服务。
cap只能取其二不能三者皆得为什么我来解释下
首先说分区容错性基本上分布式系统都要满足这个否则当某个节点挂了就不对外提供服务了那还能叫分布式系统么挂一个就都挂了那就是单机系统啊分布式就没意义了。
好了那么如果一般情况下都要满足分区容错性那么就看看一致性和可用性能不能再同时满足。
比如说有3台机器ABC正常情况下3台机器互相数据同步对外提供服务
如果某一时刻A机器和BC机器断开了那么应该怎么办
要么就是继续都对外提供服务那么此时就会出现ABC三台机器对外数据不一致的情况这就是满足了可用性但不满足一致性
另一种情况就是一旦发现机器不可用了就暂停对外服务直到ABC互相连通再对外提供服务这就是满足了一致性但不满足可用性了因为暂定服务这段时间服务就不可用了
所以说这种情况下同时要满足可用性和一致性是不可能的具体舍弃哪个得看业务情况
一般情况下比如银行业务首要的是数据一致性只要数据不一致哪怕对外停止服务也要数据一致所以会考虑CP 而秒杀业务首要的更多是可用性所以会适当放弃数据一致性大不了用户看到有货但下订单付款的时候失败了这种事也算勉强正常吧所以这种业务会考虑AP