JVM 缓存对 DNS 的影响

迁移了 DNS 之后,大部分机器表现正常,但是跑 jvm 的机器由于其自身的 DNS cache 问题,仍然在向旧的机器请求。默认情况下,除非重启进程,否则 JVM 会一直的使用原有的 DNS 解析。可以通过在配置文件里面固定或者通过在命令行里面加参数的方式修改。
修改配置文件:
我们安装的 java 版本都在这个下面:
/usr/lib/jvm/java-sun/jre/lib/security

主要是下面这两个:
networkaddress.cache.ttl (default: -1)
networkaddress.cache.negative.ttl (default: 10)

命令行中加启动参数:
sun.net.inetaddr.ttl 这个对应于上面的 networkaddress.cache.ttl
sun.net.inetaddr.negative.ttl 这个对应于上面的 networkaddress.cache.negative.ttl

ref:
http://stackoverflow.com/questions/1256556/any-way-to-make-java-honor-the-dns-caching-timeout-ttl