我们有一个 RC 模块,它在热部署期间被放入我们的云服务器中。为此,我需要一种从 JAVA 中以编程方式刷新 DNS 的方法。我能想到的最好的解决方案是让 java 触发一个外部 shell 脚本,但是我没有任何运气。我已经尝试了“正常”程序,但没有效果:
1) 重新启动 nscd 服务(未安装在这些服务器中)
2)/etc/init.d/networking restart (无效)
3)/etc/init.d/dns-clean 启动(无效果)
有人有更多建议吗?
(注意:这是对之前一篇文章的改写,必须被确定为与“非开发”相关...)
TIA
最佳答案
这取决于 JVM 实现。在 Oracle JDK 上,您需要设置 networkaddress.cache.ttl
和 networkaddress.cache.negative.ttl
security 属性(在 $JAVA_HOME/lib/security/java.security
)。出厂默认设置是永远缓存肯定的答案。
据我所知,无法在运行时刷新缓存。
参见 http://docs.oracle.com/javase/7/docs/technotes/guides/net/properties.html
关于linux - 从 JAVA 刷新 linux DNS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18085099/