我正在编写一个应用程序,它将定期联系很多网站(应其所有者的要求)。为此,我希望能够调整 Java 的 DNS 缓存。我似乎找不到任何地方:
默认最大缓存大小
如何改变这个
有任何想法吗?
谢谢。
编辑:我担心缓存变大并且内存不足
您将需要使用安装在某些服务器上的具有缓存功能的 DNS 服务器。
http://tldp.org/HOWTO/DNS-HOWTO-3.html
https://superuser.com/questions/129484/what-is-a-good-local-windows-dns-caching-server-service
Java 只是委托给操作系统。您使用的是什么操作系统?
更新:这实际上并不完全正确。Sun JVM 维护自己的已解析主机名缓存。默认情况下,缓存中的项目永远存在,但您可以向下调整TTL 。当然,这个缓存不会在 JVM 调用中持续存在;在这种情况下,我的第一句话成立。
我已经完成了InetAddress 中缓存的实现,我很确定实际上没有缓存限制。我猜设计者从来没有想过客户端可以访问这么多主机,这会导致我们内存不足。