💡
原文中文,约3400字,阅读约需9分钟。
📝
内容提要
在分布式系统中,时间处理复杂。物理时钟因网络延迟和同步误差不可靠,逻辑时钟如Lamport时钟可解决此问题。超时处理需在失败检测延迟和过早超时间权衡,分布式事务中常用重试解决。节点超时可能导致脑裂,可用token fence方法。计算机有time-of-day和monotonic两种时钟,后者用于计算时间间隔。Google的TrueTime API通过GPS和原子钟提高时钟可靠性。
🎯
关键要点
-
在分布式系统中,物理时钟因网络延迟和同步误差不可靠。
-
Lamport逻辑时钟和向量时钟可解决物理时钟不可靠的问题。
-
超时是分布式系统中最难处理的结果,需在失败检测延迟和过早超时间权衡。
-
超时处理通常采用放弃或重试的方式,重试需保证幂等性。
-
节点超时可能导致脑裂,需使用token fence方法来解决一致性问题。
-
计算机有time-of-day时钟和monotonic时钟,后者用于计算时间间隔。
-
Google的TrueTime API通过GPS和原子钟提高时钟可靠性,提供严格递增的时间特性。
❓
延伸问答
为什么物理时钟在分布式系统中不可靠?
物理时钟因网络延迟、同步误差和时钟跳跃等因素而不可靠。
Lamport逻辑时钟如何解决物理时钟的问题?
Lamport逻辑时钟通过引入逻辑时间来避免物理时钟的不可靠性,确保事件的顺序性。
分布式系统中超时处理的常见方法有哪些?
超时处理常见的方法包括放弃操作或重试操作,重试时需保证幂等性。
什么是脑裂,如何解决这个问题?
脑裂是指节点超时后被踢出角色,但仍认为自己是领导者,解决方法是使用token fence确保一致性。
计算机中有哪些时钟类型,它们的区别是什么?
计算机中有time-of-day时钟和monotonic时钟,前者表示绝对时间,后者用于计算时间间隔且永不回退。
Google的TrueTime API有什么优势?
TrueTime API通过GPS和原子钟提高时钟可靠性,提供严格递增的时间特性,解决了物理时钟的问题。
➡️