聊一聊分布式系统中的时间
原文中文,约3400字,阅读约需9分钟。发表于: 。今天聊一下时间的话题。在分布式系统中,“时间”是一个挺有趣,但是很难处理的东西。我把自己的理解简单整理下来。 不可靠的物理时钟 首先,单一节点的物理时钟是不可靠的。 物理时钟本身就有偏差,可是除此之外,可以引起节点物理时钟不准确的原因太多了,比如clock jump。考虑到NTP协议,它基于UDP通信,可以从权威的时钟源获取信息,进行自动的时间同步,这就可能会发生clock...
在分布式系统中,时间处理复杂。物理时钟因网络延迟和同步误差不可靠,逻辑时钟如Lamport时钟可解决此问题。超时处理需在失败检测延迟和过早超时间权衡,分布式事务中常用重试解决。节点超时可能导致脑裂,可用token fence方法。计算机有time-of-day和monotonic两种时钟,后者用于计算时间间隔。Google的TrueTime API通过GPS和原子钟提高时钟可靠性。