有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

EC2实例上的java原子时和系统时差

我在AmazonEC2实例上的Tomcat上部署了Java web应用程序。它使用OpenID身份验证用户登录。它现在运行8-9个月。但是,当ec2实例运行超过一个月时,用户将无法再登录。原因是OpenID验证包括从OpenID提供程序发送响应的时间与本地时间的比较,本地时间不应超过60秒

然而,我的EC2实例得到了错误的系统时间。我将它配置为在每次重新启动实例时同步系统时间,但随着时间的推移,它会超过原子时间。例如,我在15天前重新启动了服务器,而今天,它提前了27秒

有人遇到过这个问题吗?除了偶尔重新启动服务器之外,还有其他解决方案吗

谢谢

佐兰


共 (1) 个答案

  1. # 1 楼答案

    虚拟机本质上可能会在一段时间内造成与主机的时差。这是虚拟机中最常见的问题之一

    有几种解决方案,我要尝试的第一件事是使用NTP服务器来同步时间。在这种情况下,它应该对你有所帮助

    http://www.vmware.com/files/pdf/Timekeeping-In-VirtualMachines.pdfvmware的这篇白皮书讨论了其他可能的解决方案,但如果您还没有NTP服务器,我将从NTP服务器开始