当前位置: 首页 > news >正文

java dns 缓存_Java DNS解析缓存的过期策略配置

根据这篇文章的分析,Java代码中调用InetAddress.getByName(host)进行域名解析后(可能得到有效解析结果,也可能解析失败),会将结果数据保存到缓存中。当下次域名解析时,如果缓存中数据未过期,可以直接使用缓存数据。

而缓存数据的过期策略,可以通过下面的方式配置:

如果开启了SecurityManager,会从${java.home}/jre/lib/security/java.security中读取配置项:

有效结果缓存时间配置:networkaddress.cache.ttl (缺省值30,单位秒)

失败结果缓存时间配置:networkaddress.cache.negative.ttl (缺省值10,单位秒)

如果未开启SecurityManager,会从启动参数读取配置项:

有效结果缓存时间配置:sun.net.inetaddr.ttl

失败结果缓存时间配置:sun.net.inetaddr.negative.ttl

以上配置未生效情况下,缺省配置是:

有效结果缓存时间:-1(永不过期)

失败结果缓存时间:0(立刻过期,即不做缓存)

这个缺省配置在实践中会出问题:如果域名解析发生变更,但因为有效结果缓存永不过期,应用一直使用旧的解析结果,会导致连接异常等错误(类似java.net.ConnectException: Tried all: '1' addresses, but could not connect over HTTP to server)。如果域名解析失败,对失败结果不做缓存,可能会出现持续解析失败,这种情况往往降低可用性。

本文参考的源码及配置为Java1.8版本。进一步了解SecurityManager,请参考。

**最佳实践**:java.security的缺省配置比较合理,如果不确定应用是否开启了SecurityManager,可以在Java Options中将相关启动参数配置成60/10,保持和java.security的缺省配置一致。

相关文章:

  • java 二叉树图形_java实现二叉树以及实例
  • java tree的使用_Java TreeSet的使用
  • java矩形_JAVA实现矩形(长方形)的周长面积计算
  • phymeleaf 除取整_【Bug档案01】Spring Boot的控制器+thymeleaf模板 -使用中出现静态资源加载路径不当的问题 -解决时间:3h...
  • python 矩阵乘法梯度下降_使用python numpy矩阵类的梯度下降
  • oracle 存储过程调用java_oracle 存储过程调用java一
  • java春天_java – 春天的Aspectj
  • java开发微信设计论文_集客微信公众号: 本科毕业设计:基于WxJava框架的集客微信公众号的设计与实现...
  • java 判断是不是英文怎么说_java判断一个字符串是中文还是英文
  • linux+mysql运算符_MySQL 运算符
  • saxreader java_SAXReader saxReader = new SAXReader();来解析xml文件
  • 埃森哲java转sfdc_【SFDC salesforce职责】2021年埃森哲SFDC salesforce岗位职责-看准网...
  • JAVA循环读取菜单_java循环菜单
  • mysql一条sql的执行过程_【MySQL深入】一条SQL的执行过程
  • java高级编程英语单词_Java高级编程
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • EventListener原理
  • exif信息对照
  • Java的Interrupt与线程中断
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • Vue 重置组件到初始状态
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 计算机常识 - 收藏集 - 掘金
  • 记录一下第一次使用npm
  • 使用Gradle第一次构建Java程序
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 应用生命周期终极 DevOps 工具包
  • C# - 为值类型重定义相等性
  • Java数据解析之JSON
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • 如何正确理解,内页权重高于首页?
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • (145)光线追踪距离场柔和阴影
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (LeetCode) T14. Longest Common Prefix
  • (二开)Flink 修改源码拓展 SQL 语法
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转载)(官方)UE4--图像编程----着色器开发
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • .net访问oracle数据库性能问题
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .NET学习全景图
  • ::before和::after 常见的用法
  • @EnableConfigurationProperties注解使用
  • @RequestBody与@ModelAttribute
  • @serverendpoint注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • [ 云计算 | Azure 实践 ] 在 Azure 门户中创建 VM 虚拟机并进行验证
  • [2009][note]构成理想导体超材料的有源THz欺骗表面等离子激元开关——
  • [BZOJ] 1001: [BeiJing2006]狼抓兔子
  • [C++基础]-入门知识