我正在开展一个项目,需要保持服务器时间同步,精确到毫秒。
英国、美国、亚洲和其他国家均设有服务器,目前有人必须手动同步时间以确保它们全部匹配,但这很困难而且并不总能使毫秒完全匹配。
我们还修复了代码以适应所有服务器的时间差异。
有一个更好的方法吗?
我们目前正在使用 Windows 堆栈。
答案1
如果精确到毫秒,NTP 之类的东西就无法做到。互联网上通常只能精确到几十毫秒。
您可能必须使用连接到服务器本身或同一 LAN 中的精确时钟。
请注意,精确的时钟包括 GPS 接收器,具有每秒脉冲输出。
如果您手动设置时钟,则可能已经偏离了数百毫秒。
由于你们的业务范围很广,所以我会联系以下公司迈恩伯格并从他们那里获得交钥匙解决方案 - 这既是因为系统的地理分布范围广泛,也是因为对正确时间的极端要求。
如果您喜欢冒险,您可能可以设置自己的解决方案,在每个位置使用 GPS,并使用每秒脉冲输出到服务器。这是否足够准确?我不知道。
答案2
啊,就这么做吗?
说真的。Windows 2019 在假设延迟稳定的情况下,开箱即用的准确度为 0.5 毫秒(如果我没记错的话)。
微软有很多关于他们如何重新设计时间同步以实现这种准确性的文章,即使在虚拟化中也是如此(假设主机上有 Hyper-V)。