xring / blog

blog source code

Home Page:https://xring.net

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

JVM 设置 DNS 查询 TTL

xring opened this issue · comments

commented

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");