通过代码直接设置Java的DNS(实际上设置的是DNS Cache),支持JDK 6+。

 功能

  • 设置/重置DNS(不会再去Lookup DNS)

    • 可以设置单条
    • 或是通过Properties文件批量设置
  • 查看DNS Cache内容
  • 删除一条DNS Cache(即重新Lookup DNS)
  • 清空DNS Cache(即所有的域名重新Lookup DNS)

 需求场景

    1. 一些库中写死了连接域名,需要通过修改host文件绑定才能做测试。结果是:

      • 自动持续集成的机器上一般同学是没有权限去修改host文件的,导致项目不能持续集成。
        实际上是因为这点,催生这个库的需求。 
      • 单元测试需要每个开发都在开发机上做host绑定,增加了依赖的配置操作且繁琐重复。
    2. 一些功能需要域名作为输入参数,如使用HTTP请求的网关 或是 有域名检查限制的Web应用。
      这种情况下,让需要让一个域名连接到测试机器的IP上,或是 使用一个还不存在的域名但又不想或不能去配置DNS。
    3. 在性能测试时,
      • 不去做网络的DNS Lookup(DNS解析消耗),这样使得压测更加关注服务器响应,压测更充分反应出实现代码的性能。
      • 可以动态修改DNS缓存,无需修改host文件和http链接等不灵活的方式。
      • 一个JVM进程可以对应一套域名绑定,相互之间不影响,可以实现多场景,多域名绑定的需求压测。
    4. 打开Java中的SecurityManager时(如在Web容器Tomcat中的Web应用),Java的DNS缺省是不会失效的。 如果域名绑定的IP变了,可以通过这个库重置DNS,作为一个临时的手段(强烈不推荐)。
      当然往往进行要先有能执行入口,比如远程调用或是jvm-ssh-groovy-shell

Java Dns Cache Manipulator的更多相关文章

  1. Java DNS查询内部实现

    源码分析 在Java中,DNS相关的操作都是通过通过InetAddress提供的API实现的.比如查询域名对应的IP地址: String dottedQuadIpAddress = InetAddre ...

  2. Java实现cache的基本机制

    我这里说的cache不是指CPU和RAM之间的缓存,而是Java应用中间常用的缓存.最常使用的场合就是访问数据库的时候为了提高效率而使用的 cache.一般的用法就是把数据从数据库读到内存,然后之后的 ...

  3. Java Integer Cache

    Java Integer Cache Java 代码 public class IntegerDemo { public static void main(String[] args) { Integ ...

  4. 域名缓存侦测(DNS Cache Snooping)技术

    域名缓存侦测(DNS Cache Snooping)技术 在企业网络中,通常都会配置DNS服务器,为网络内的主机提供域名解析服务.这些DNS不仅解析自己的私有域名,还会用递归方式,请求公网的DNS解析 ...

  5. 命令学习_IPCONFIG: DNS cache操作

    IPCONFIG: DNS cache操作 Windows会将解析到的DNS信息缓存,这个机制可以加速重复的域名访问.从DNS Server返回的DNS Response消息中带有"Time ...

  6. 禁用Java DNS缓存-Disable DNS caching

    Once an application has performed network access (i.e. urlconnection, parsing of xml document with e ...

  7. 自己动手实现java中cache

    实现思路: 创建一个静态Hashtable用于保存key和value,对于cache过期后的方法回调,在cache过期后,再访问cache的时候进行,避免了使用定时器轮询过期时间,进行cache清除的 ...

  8. 利用exosip DNS CACHE自定义SIP服务器地址和端口

    文章标题可能表述不清,罢了,我这里描述一个场景: 当使用exosip开发UA时,服务器地址是域名example.com和端口形式,但存在两个限制: 1.example.com没有DNS记录.没有NAP ...

  9. [archlinux][daily] 自建DNS服务器 / 建立本地DNS cache / 使用dnsmasq加速上网

    新公司,上网超慢,DNS竟然是远程地址,终于找到机会学习一下dnsmasq了. update@20170516: 上网慢是因为分给我的IP有限流策略,其实远端DNS并不会造成感受上的上网慢. 参考:h ...

随机推荐

  1. # 20145210 《Java程序设计》第05周学习总结

    教材学习内容总结 第八章 异常处理 8.1语法与继承架构 •使用 try.catch •Java中所有信息都会被打包为对象,如果愿意,可以尝试(try)捕捉(catch)代表错误的对象后做一些处理 • ...

  2. 15、C#基础整理(递归)

    带输出参数的函数 输入参数相当于函数而言,相当于已经赋值了的变量,直接可用输出参数相当于定义一个没有值的变量,在函数中进行赋值,然后调用函数的时候将赋值带出函数 例: public void shuc ...

  3. HDU 5828(线段树)

    Problem Rikka with Sequence 题目大意 维护一个序列,支持三种操作. 操作1:区间加. 操作二:区间开根号(向下取整). 操作3:区间求和. 解题分析 可以发现经过若干次操作 ...

  4. Inno Setup 在安装程序开始前和卸载程序开始前,检查并关闭运行的进程

    (2011-12-29 11:54:56) 转载▼ 标签: innosetup it 分类: 开发工具经验累积 Inno Setup在安装程序前,如果有使用的进程在运行,会有错误提示,而使得Insta ...

  5. [转]ELO等级分体系

    [译前注:有读者问ELO等级分体系的说明.观网上好象没发现单篇文章就说得通俗清晰的,只好把找到几篇文章拿在一起合译互相补充.其间发现具体说法稍有差异,但总的来说概念一致.FIDE已经专门制定计算表了, ...

  6. [转]SQLite C/C++

    SQLite C/C++ http://blog.csdn.net/diaoser/article/details/6830786   辅助工具工具 Sqlite数据库的管理工具有SQLiteMana ...

  7. magento和discuz(ucenter)整合集成开发思路

    discuz自带ucenter,主要就是用于和其他程序的通信.我们可以下载discuz的ucenter开发手册进行magento和discuz的集成.里面有一些ucenter的一些接口函数和参数说明, ...

  8. CMAKE的用法

    一.      基本使用 安装:下载二进制包后可直接解压使用 从源码安装则执行命令:./bootstrap; make; make install——尝试执行bootstrap失败 使用:cmake ...

  9. why we need virtual key word

    http://stackoverflow.com/questions/2391679/why-do-we-need-virtual-methods-in-c 简言之,声明基类时,而实际指向派生类.如果 ...

  10. zendstudio添加注释快捷键

    最常用的是ctrl+/来添加行注释 方法是选中代码,按ctrl+/就可以注释掉代码.再按ctrl+/可以去掉注释 添加块注释时,现加/,再加*,再按enter即可添加块注释.