zoukankan      html  css  js  c++  java
  • Java Dns Cache Manipulator

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

    :wrench: 功能

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

    :art: 需求场景

      1. 一些库中写死了连接域名,需要通过修改host文件绑定才能做测试。结果是:
        • 自动持续集成的机器上一般同学是没有权限去修改host文件的,导致项目不能持续集成。
          实际上是因为这点,催生这个库的需求。 :persevere::gun:
        • 单元测试需要每个开发都在开发机上做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
  • 相关阅读:
    比较两个NSDate
    关于修改UIWebView的UserAgent
    iOS9适配 之 关于info.plist 第三方登录 添加URL Schemes白名单
    iOS系统自带分享功能
    swift中的协议
    iOS性能优化:Instruments使用实战
    iOS利用HealthKit框架从健康app中获取步数信息
    iOS设备型号
    iOS消息推送机制
    Swift进阶
  • 原文地址:https://www.cnblogs.com/jifeng/p/4583710.html
Copyright © 2011-2022 走看看