由于操作系统会缓存域名指向的ip地址,就可能出现服务器ip已经变动,本地仍然读取缓存从而没有得到及时更新,导致不能访问服务的情况,但是我们的本机缓存可以通过下列方法清除:

1.在Windows下可以通过命令行模式执行 ipconfig /flushdns 命令来刷新缓存;

2.在Linux下统一通过: sudu /etc/init.d/nscd restart 来清除缓存;

3.重启;

4.在Java应用中,JVM也会缓存DNS的解析结果,该缓存实在InetAddress类中完成的,有两种缓存策略:一种是正确解析结果缓存,一种是失败解析结果缓存,这两个的缓存时间由两个配置项控制,配置项在“%JAVA_HOME%\lib\security\java.security”文件中配置的,两个配置项分别是networkaddress.cache.ttl和networkaddress.cache.negative.ttl,它们的默认值分别是-1(永不失效)和10(缓存十秒);

修改方法:

(1).直接修改java.security文件中的默认值;

(2).在java的启动参数中增加-Dsum.net.inetaddr.ttl=xxx来修改默认值;

(3).通过InetAddress类动态修改;

 

--《深入分析Java Web技术内幕修订版》 Page 18-Page 19

Logo

更多推荐