JVM 设置 DNS 查询 TTL
xring opened this issue · comments
JVM 会缓存 DNS 查询的结果,当 JVM 查询到某个主机名对应的 IP 地址时,它会将 IP 地址缓存一个特定的时间(TTL)。
在某些情况下,如果主机名对应的 IP 地址会经常改变,而 JVM 默认的策略(受 security manager 的影响)是直到 JVM 重启才会刷新 DNS,所以需要手动修改 DNS 的 TTL 策略,通过设置 networkaddress.cache.ttl 属性来完成。
全局设置
在 $JAVA_HOME/jre/lib/security/java.security
中配置 networkaddress.cache.ttl
字段:
networkaddress.cache.ttl=60
单应用配置
在应用程序初始化的时候设置:
java.security.Security.setProperty("networkaddress.cache.ttl" , "60");