目前我正在开展一个Android
项目。我怀疑是否重新编写了java级别 DNS 缓存。通过搜索,我发现通过调用下面提到的函数,我们可以实现它。
System.setProperty( "networkaddress.cache.ttl", "0" );
System.setProperty( "networkaddress.cache.negative.ttl", "0" );
基于此,它会缓存名称查找数据。我想知道因为这个属性的目的或影响。
答案 0 :(得分:3)
目的是减少DNS请求。这样可以更快地下载,因为主机名的IP已经在缓存中。
这是直接影响标准网络库的Java系统属性。它允许您调整Java级别的DNS缓存。
与所有缓存一样,缓存有时不会产生预期效果,例如当某些DNS条目发生更改时缓存会更新。
我将值0(无缓存)或-1(永久缓存)仅用于测试目的。
答案 1 :(得分:0)
另外我认为你不能像上面那样设置属性。在JVM上,您需要使用
java.security.Security.setProperty(“networkaddress.cache.ttl”,“10”);
(不确定Android)