美文网首页
分布式系统-10-最终一致性

分布式系统-10-最终一致性

作者: 王谙然 | 来源:发表于2017-01-11 16:03 被阅读329次

    最终一致性的啥意思?重点在于 最终 两字,指当对某一资源的修改在一定时间后会同步到所有副本。DNS 就是典型的最终一致性。

    在 DNS 协议中,域名每个解析记录都有 TTL(Time to live) 属性,当我们用浏览器访问网站时,首先查看这个域名在本地的缓存,若最后更新的时间距离现在没有超过 TTL,则直接使用,否则去 DNS server上获取该域名的IP。所以我们在 Name Server 上修改某条记录后,不会立刻扩散(同步)到所有的缓存服务器上,而是由各个层级的服务器根据自己的缓存判断是否过期,若过期才去同步数据。最终 的含义就在于此,由此可见如果修改一条 DNS 解析记录,最长可能要等待一个 TTL 周期才能获取最新数据,同样如果你用的 DNS 服务器如果已经有人尝试更新,服务器就不需要再次去 Name Server 更新数据了。这种分布式方式通过层层缓存大大降低了 Name Server 的负载。当然代价是一定时间更新延迟。所以在网络基础设施不发达的时期,DNS 依然能保证域名解析的性能。

    从 DNS 这个应用来看,最终一致性大大提升了访问性能,但是需要业务逻辑处理数据更新延迟。所以如果更新远远少于读写,且能够接受短时的同步延迟是可以采用最终一致性并且做动态的数据更新操作,而不是简单的设个TTL。而对于频繁更新且延迟敏感的需求则不太适合用最终一致性。

    相关文章

      网友评论

          本文标题:分布式系统-10-最终一致性

          本文链接:https://www.haomeiwen.com/subject/noccbttx.html