分布式没有全局时间

2021 年 11 月 21 日
 kikione
不同计算机上的时钟未必会给出相同的时间?
为什么会这样啊?
4795 次点击
所在节点    程序员
25 条回复
geligaoli
2021 年 11 月 21 日
如果系统允许几个毫秒的误差,用 ntpdate 就可以了。要是想达到微妙的误差,就得靠硬件了。
QingXuJiaZhi
2021 年 11 月 21 日
因为根据相对论,每个参照系的时间都不同,而不同计算机就是不同参照系,自然不可能拥有相同的时间。
MarkLazy
2021 年 11 月 21 日
所有的度量衡都有最小误差啊,时间也一样,只要控制在一定范围内不就没问题吗
rrfeng
2021 年 11 月 21 日
不同计算机上的时钟必然会给出不同的时间。
ipwx
2021 年 11 月 21 日
因为晶振是有误差的。

除非你用原子振荡计时。
luoqeng
2021 年 11 月 21 日
只有逻辑时钟 Lamport
luoqeng
2021 年 11 月 21 日
Google 的分布式数据库库用原子时钟保证误差
luoqeng
2021 年 11 月 21 日
sagaxu
2021 年 11 月 21 日
同一台机器上,时间没有误差吗?
R4rvZ6agNVWr56V0
2021 年 11 月 21 日
原子钟的标准时间是个参考系,同步到其他设备上碍于物理距离 / 时间发生器(例如晶振)工艺,无法保持绝对意义上的同步。
所以分布式系统为了保持同步动作,就需要额外的考量,增加其他的处理逻辑了
MoYi123
2021 年 11 月 21 日
这就是 CAP 理论中的 AP 系统.
hallDrawnel
2021 年 11 月 21 日
计算机自己的晶振时钟偏差其实可以很大,为了尽可能做到精确,IDC 可以部署原子钟同步时间,做到尽可能的一致。
whevether
2021 年 11 月 21 日
最好的方法就是统一使用网关上的时间
sutra
2021 年 11 月 22 日
chinvo
2021 年 11 月 22 日
可以考虑用 PTP
Buges
2021 年 11 月 22 日
就算是单机,要保证 monotonic time 也不是一件容易的事情。
pythonee
2021 年 11 月 22 日
@whevether 那网关就是单点了
pythonee
2021 年 11 月 22 日
我在想另外一个问题,分布式系统可不可以做到不依赖时间呀
CRVV
2021 年 11 月 22 日
分布式可以有全局时间,比如 GPS 。从卫星发射它自己的时间,然后在地面接收到不同卫星发射的不同时间,用时间差可以算出来距离差,然后解出自己的坐标。
整套系统的关键就是那个全局一致的时间。
当然成本比较高,别的系统值不值得用就是另一回事了。
luoqeng
2021 年 11 月 22 日
@pythonee 分布式系统需要依赖的不是时间,是确认两台机器处理事情的先后顺序,顺序有全序 偏序关系。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.xtra.eu.org/t/816940

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX