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
  • 相关阅读:
    大端小端与数字的二进制存储
    java基础之进制转换汇总
    (转) tcp udp通讯协议
    JAVA Tcp Udp的通讯实现(转)
    ExecutorService创建线程使用 转()
    转:java中的位运算
    SVN服务器的搭建与TortoiseSVN的使用
    [Mark]VM Cone & Template
    [Mark]VM migrate
    [Mark] ethtool command in REHL OS
  • 原文地址:https://www.cnblogs.com/jifeng/p/4583710.html
Copyright © 2011-2022 走看看