1
geligaoli 2021-11-21 17:55:00 +08:00
如果系统允许几个毫秒的误差,用 ntpdate 就可以了。要是想达到微妙的误差,就得靠硬件了。
|
2
cmdOptionKana 2021-11-21 18:44:53 +08:00 4
因为根据相对论,每个参照系的时间都不同,而不同计算机就是不同参照系,自然不可能拥有相同的时间。
|
3
qaqLjj 2021-11-21 20:12:20 +08:00
所有的度量衡都有最小误差啊,时间也一样,只要控制在一定范围内不就没问题吗
|
4
rrfeng 2021-11-21 21:42:07 +08:00
不同计算机上的时钟必然会给出不同的时间。
|
5
ipwx 2021-11-21 22:03:25 +08:00
因为晶振是有误差的。
除非你用原子振荡计时。 |
6
luoqeng 2021-11-21 22:23:22 +08:00
只有逻辑时钟 Lamport
|
7
luoqeng 2021-11-21 22:24:33 +08:00
Google 的分布式数据库库用原子时钟保证误差
|
8
luoqeng 2021-11-21 22:30:25 +08:00
|
9
sagaxu 2021-11-21 23:01:04 +08:00
同一台机器上,时间没有误差吗?
|
10
GeekGao 2021-11-21 23:07:44 +08:00
原子钟的标准时间是个参考系,同步到其他设备上碍于物理距离 / 时间发生器(例如晶振)工艺,无法保持绝对意义上的同步。
所以分布式系统为了保持同步动作,就需要额外的考量,增加其他的处理逻辑了 |
11
MoYi123 2021-11-21 23:08:50 +08:00
这就是 CAP 理论中的 AP 系统.
|
12
hallDrawnel 2021-11-21 23:26:59 +08:00
计算机自己的晶振时钟偏差其实可以很大,为了尽可能做到精确,IDC 可以部署原子钟同步时间,做到尽可能的一致。
|
13
whevether 2021-11-21 23:52:52 +08:00
最好的方法就是统一使用网关上的时间
|
14
sutra 2021-11-22 00:36:54 +08:00
|
15
chinvo 2021-11-22 00:41:02 +08:00
可以考虑用 PTP
|
16
Buges 2021-11-22 01:58:59 +08:00 via Android
就算是单机,要保证 monotonic time 也不是一件容易的事情。
|
18
pythonee 2021-11-22 09:17:33 +08:00
我在想另外一个问题,分布式系统可不可以做到不依赖时间呀
|
19
CRVV 2021-11-22 09:54:13 +08:00
分布式可以有全局时间,比如 GPS 。从卫星发射它自己的时间,然后在地面接收到不同卫星发射的不同时间,用时间差可以算出来距离差,然后解出自己的坐标。
整套系统的关键就是那个全局一致的时间。 当然成本比较高,别的系统值不值得用就是另一回事了。 |
23
2i2Re2PLMaDnghL 2021-11-22 12:30:35 +08:00
不可能存在完美的计时工具,因为时计即熵计。理论上完美的时计需要消耗全部的能量转化成等量的纯熵
|
24
PDdavon 2021-11-22 20:32:10 +08:00
每台计算机只能根据晶振来确定从开机后到当前的时间,但是晶振本身也是受到温度影响的。而又由于网络延迟的不确定性,也不能完全相信其他节点传递过来的时间,只能是从几个信息源综合判定当前可能的时间。可以看下《数据密集型应用设计》 http://ddia.vonng.com/#/ch8?id=%e4%b8%8d%e5%8f%af%e9%9d%a0%e7%9a%84%e6%97%b6%e9%92%9f
|
25
zeni123 2021-11-23 02:05:55 +08:00 via iPhone
|