`

ElasticSearch源码分析——入口类Elasticsearch

阅读更多

 

 

Java DNS缓存策略

DNS(Domain Name System,域名系统)服务器管理域名和IP的对应关系。

一次域名查询是非常耗时的操作,可能经过多台DNS服务器才能查找到指定的域名。

Java 内置提供了DNS缓存服务,重用已有的查询结果。默认将永久保留访问过的域名。

 

 

通过调用“Security.setProperty”设置缓存策略相关的配置属性。

配置属性 默认值 说明
networkaddress.cache.ttl -1 域名查找成功时,缓存时间。为-1时,缓存永不过期。单位:秒
networkaddress.cache.negative.ttl 10 域名查找失败时,缓存时间。

 

 以上两个属性不能在命令行使用“-Dk=v”的方式设置。因此,ES中通过添加前缀“es.”的方式设置。

 

private static void overrideDnsCachePolicyProperties() {
    for (final String property : new String[] {"networkaddress.cache.ttl", "networkaddress.cache.negative.ttl" }) {
        final String overrideProperty = "es." + property;
        final String overrideValue = System.getProperty(overrideProperty);
        if (overrideValue != null) {
            try {
                // round-trip the property to an integer and back to a string to ensure that it parses properly
                Security.setProperty(property, Integer.toString(Integer.valueOf(overrideValue)));
            } catch (final NumberFormatException e) {
                throw new IllegalArgumentException(
                        "failed to parse [" + overrideProperty + "] with value [" + overrideValue + "]", e);
            }
        }
    }
}

 

提问1:为什么不通过配置文件中设置? 

不一致问题,即配置文件在程序运行过程中可能被修改,但是程序中使用的还是原来的值。

 

Java SecurityManager

安全管理器用来检查操作是否有权执行。

一个Java常驻进程,如果限制IO读写、执行外部命令。被攻破时,将产生很大的安全隐患。

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics