摘要:假设暴漫的粉丝喜欢玩漂流瓶只要暴走大事件有更新,就会把最新一期的暴走大事件写在纸上,然后通过漂流瓶扔向大海。换句话说,虽然每一时刻,关于最新一期暴走大事件是什么你并不一定知道的是正确的答案,但你总是会最终知道正确答案。
1. Eventual Consistency 概述
分布式数据库必须要有 分区容忍性(Partition Tolerant),所以主要是在 一致性(Consistent) 和 可用性(Available) 之间做选择。
虽然在 CAP 理论中,选择了 Availability 就不可能得到真正的 Consistency,但是你可以追求 最终一致性(Evental Consistency)
evental Consistency 背后的思路是:每个系统节点总是 Available 的,同时任何的写(修改数据)操作都会在后台同步给系统的其他节点。
这意味着,在任意时刻,整个系统是Inconsistent(不一致的),然而从概率上讲,大多数的请求得到的值是准确的。
互联网的 DNS(域名服务) 就是最终一致性的一个非常好的例子。你注册了一个域名,
这个新域名需要几天的时间才能通知给所有的 DNS 服务器。但是不管什么时候,你能够连接到的任意 DNS 服务器对你来说都是 "Available" 的。
让我们接着之前的小故事.
假设你不是深山里,是被抓到一个孤岛上造方舟。
2015年7月3日——距离你被抓来造方舟已经将近3个月,你在孤岛的海边捡到了一个漂流瓶,里面写着:
最新一期暴走大事件是第四季第2期
所以你知道:最新一期暴走大事件至少是第四季第2期。
假设暴漫的粉丝喜欢玩漂流瓶——只要暴走大事件有更新,就会把最新一期的暴走大事件写在纸上,然后通过漂流瓶扔向大海。
这样,像你这样的被 Partition 的人,总是能时不时地收到记录着最新一期暴走大事件是什么的漂流瓶。
换句话说,虽然每一时刻,关于“最新一期暴走大事件是什么”你并不一定知道的是正确的答案,但你总是会 eventually(最终) 知道正确答案。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/17460.html
阅读 2596·2023-04-25 22:09
阅读 2838·2021-10-14 09:47
阅读 1892·2021-10-11 11:10
阅读 2681·2021-10-09 09:44
阅读 3375·2021-09-22 14:57
阅读 2497·2019-08-30 15:56
阅读 1617·2019-08-30 15:55
阅读 777·2019-08-30 14:13