想象一下以下场景,
- 您有 10 个 Java 应用程序访问数据库服务器
- 每个应用程序服务器已经运行了一段时间,Java 应用程序时间现在相隔几分钟
- 1 个应用程序使用当前时间作为记录生效日期插入一条记录
- 另一个应用程序检索该记录并将生效日期与当前时间进行比较
在上述场景中,即使您的应用程序逻辑听起来正确,但当它在生产环境中运行时,就会出错。
我该如何解决这个问题?
最佳答案
使用NTP来同步机器的时间。
如果由于某种原因这不是一个选项,请仅使用服务器的日期和时间(例如,通过在插入中使用 SQL 的 NOW
函数或类似函数以及在选择中作为额外列)。
关于Java时间同步问题 多个时区客户端 单个数据库服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5282183/