我们在生活中看电影是一件非常享受的事情,还是举个例子吧,某影视公司旗下有位于西单和中关村两个电影院,都出售某部电影的电影票,一共一万张。那么,顾客到达其中一个电影院买票的时候,售票员该怎么决策是否卖出这张电影票又不超票呢?当电影院的个数更多的时候会怎么样呢?这个问题在现实生活中看起来显得很容易,但在分布式网络系统中呢,有何要求呢?这无非是一致性问题,我们来看看。
一致性的要求:
可终止性
一致性的结果在有限时间内完成,这个很容易理解,这个就是计算机中可以被运用的前提。
共识性
不同节点最终完成决策的结果应该相同,这个看起来容易,但似乎隐藏了一些潜在信息。比如,现在就剩下一张票了,西单和中关村两个电影院也分别刚刚确认过这张票的存在,然而两个电影院同时来了一个顾客要买这张票。从各自的“观察”来看,自己的客户都是第一个来的.......如何达到共识呢?请记住我们唯一的秘诀:核心需要把两件事进行排序,并且需要大家的认可。
合法性
决策结果必须是其他进程提出的提案,这个看起来比较绕口,但其实比较容易理解,即达成的结果必须是节点执行操作的结果,如果两个影院各自卖出1000张,那么达成的结果是还剩下8000张,而不能说是卖光了。
联系我们第一时间了解智链通项目进展哦。
官方客服微信号:zhiliantoken
官方QQ群:700087352
官方邮箱:13122588568@163.com
智链通官方公众号 智链通小助手
网友评论