
但CAP理论究竟是什么呢?
CAP理论很简单,但却是很多软件设计的宏观指导,因此也有人将之称为架构师必须掌握的理论之一。
鉴于理论的东西相对来说比较抽象而且繁琐,因此我们先举个例子:
有一天你打王者荣耀连跪,于是找了一个大神鲁班,带你起飞:
于是就发生了下边的对话
(1)
射手鲁班:救救我,谢谢
辅助蔡文姬:收到
(2)
辅助蔡文姬:我来抓人了
射手鲁班:收到
如果一切良好,那么一切都OK
但是假若这时候YY语音突然挂掉了
(1)射手鲁班:救救我,谢谢
蔡文姬,没有响应
(2)辅助蔡文姬:我来抓人了
射手鲁班,没有响应
那么接下来有两种策略:
1、 暂时先不管YY语音的问题,继续打好游戏。
2、先不打游戏了,切屏打电话给对方,看下是不是发生了什么状况
是的,这涉及到所谓的CAP理论了,
也就是在分布式场景下,如果不同节点之间的通信出现了问题,那么不同节点的响应策略应该是什么样的。是该暂停响应,等待连接恢复,还是应该坚持响应,忽略数据的不一致性。
我们先来看下计算机领域中,CAP的专业解释:
一致性 Consistency:在分布式系统中,所有的数据备份,在任意时刻都要求一致;
可用性 Availability:对于分布式系统中的节点,在任意时候都可以正常的进行读写响应,并且不超时;
分区容错性 Partition tolerance:当节点之间的通信出现(防盗连接:本文首发自
)故障时,整个分布式系统仍然可以运行起来,不至于直接崩溃掉;