据我了解,Tomcat 在 Linux 上使用单独的 DNS 缓存。我该如何清除它?
我们的 Tomcat 服务器正在运行一个应用程序,该应用程序使用另一台服务器上的服务,而该服务器的 IP 地址已更改。现在我得到没有到主机的路由即使在另一台计算机上测试时,使用 DNS 名称似乎可以访问另一台服务器上的服务,也会出现异常。此外,当使用 DNS 名称从安装了 tomcat 的服务器 ping “新 IP”服务器时,ping 会 ping 正确的新 IP 地址。
答案1
Oracle/Sun Java 为其自己的名称解析机制提供了内部缓存(它并不特定于 Apache Tomcat servlet 容器)。
目前看来,最简单的解决方案是重新启动整个 JVM 容器。稍后,如果您想完全禁用内部 DNS 缓存,可以通过将系统属性设置为 0 来实现networkaddress.cache.ttl
(networkaddress.cache.negative.ttl
有关这些 Java 属性的更多信息可以在这里找到)。