killme2008/Metamorphosis

偶尔收到异常信息"Clock moved backwards. Refusing to generate id for xxxxx milliseconds"

Closed this issue · 3 comments

客户端提交消息到broker端的时候,偶尔会收到类似这样的异常信息"Clock moved backwards. Refusing to generate id for xxxxx milliseconds"。我们这边会在每天晚上0点进行服务器时间同步调整,但这些异常是在晚上1点多报的。这之间是一直有消息在发送,如果是0点左右报错那可以解释,主要是到了1点多才报错。这个请确认一下。

这是ID产生器使用了System.currentTimeMillis(),而它不是单调递增的。可以考虑改成System.nanoTime()。 不过这个延迟1个小时报警,我就不知道为什么了,可能是JVM本身的时间缓存?

提交了一个更改
d3b5959