
1 geligaoli 2021-11-21 17:55:00 +08:00 如果系统允许几个毫秒的误差,用 ntpdate 就可以了。要是想达到微妙的误差,就得靠硬件了。 |
2 cmdOptionKana 2021-11-21 18:44:53 +08:00 因为根据相对论,每个参照系的时间都不同,而不同计算机就是不同参照系,自然不可能拥有相同的时间。 |
3 MarkLazy 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 R4rvZ6agNVWr56V0 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 |