Java Dns Cache Manipulator
2015-06-17 16:37
531 查看
通过代码直接设置Java的DNS(实际上设置的是DNS Cache),支持JDK 6+。
设置/重置DNS(不会再去Lookup DNS)
可以设置单条
或是通过Properties文件批量设置
查看DNS Cache内容
删除一条DNS Cache(即重新Lookup DNS)
清空DNS Cache(即所有的域名重新Lookup DNS)
一些库中写死了连接域名,需要通过修改host文件绑定才能做测试。结果是:
自动持续集成的机器上一般同学是没有权限去修改host文件的,导致项目不能持续集成。
实际上是因为这点,催生这个库的需求。
单元测试需要每个开发都在开发机上做host绑定,增加了依赖的配置操作且繁琐重复。
一些功能需要域名作为输入参数,如使用HTTP请求的网关 或是 有域名检查限制的Web应用。
这种情况下,让需要让一个域名连接到测试机器的IP上,或是 使用一个还不存在的域名但又不想或不能去配置DNS。
在性能测试时,
不去做网络的DNS Lookup(DNS解析消耗),这样使得压测更加关注服务器响应,压测更充分反应出实现代码的性能。
可以动态修改DNS缓存,无需修改host文件和http链接等不灵活的方式。
一个JVM进程可以对应一套域名绑定,相互之间不影响,可以实现多场景,多域名绑定的需求压测。
打开Java中的SecurityManager时(如在Web容器Tomcat中的Web应用),Java的DNS缺省是不会失效的。 如果域名绑定的IP变了,可以通过这个库重置DNS,作为一个临时的手段(强烈不推荐)。
当然往往进行要先有能执行入口,比如远程调用或是jvm-ssh-groovy-shell。
功能
设置/重置DNS(不会再去Lookup DNS)可以设置单条
或是通过Properties文件批量设置
查看DNS Cache内容
删除一条DNS Cache(即重新Lookup DNS)
清空DNS Cache(即所有的域名重新Lookup DNS)
需求场景
一些库中写死了连接域名,需要通过修改host文件绑定才能做测试。结果是:自动持续集成的机器上一般同学是没有权限去修改host文件的,导致项目不能持续集成。
实际上是因为这点,催生这个库的需求。
单元测试需要每个开发都在开发机上做host绑定,增加了依赖的配置操作且繁琐重复。
一些功能需要域名作为输入参数,如使用HTTP请求的网关 或是 有域名检查限制的Web应用。
这种情况下,让需要让一个域名连接到测试机器的IP上,或是 使用一个还不存在的域名但又不想或不能去配置DNS。
在性能测试时,
不去做网络的DNS Lookup(DNS解析消耗),这样使得压测更加关注服务器响应,压测更充分反应出实现代码的性能。
可以动态修改DNS缓存,无需修改host文件和http链接等不灵活的方式。
一个JVM进程可以对应一套域名绑定,相互之间不影响,可以实现多场景,多域名绑定的需求压测。
打开Java中的SecurityManager时(如在Web容器Tomcat中的Web应用),Java的DNS缺省是不会失效的。 如果域名绑定的IP变了,可以通过这个库重置DNS,作为一个临时的手段(强烈不推荐)。
当然往往进行要先有能执行入口,比如远程调用或是jvm-ssh-groovy-shell。
相关文章推荐
- LeetCode20 Valid Parentheses的java 题解
- struts的modelDriver模型驱动运用
- Java中socket传送中文乱码问题解决方法
- 通过dom4j进行数据读取xml文件进行数据的读取操作
- JAVA串口开发学习笔记1
- Eclipse 中设置JVM 内存及JVM监控调优
- java获取当前年月日
- Java仿文库的基本方法(openoffice+swftools+flexPaper)
- jdk1.8新特性
- Spring集成Quartz定时任务框架介绍和Cron表达式详解
- Java多线程编程总结笔记——03概念与原理
- javal连接mysq数据库
- Java 锁
- eclipse文件恢复
- java中JFrame 窗口关闭时,弹出一个对话框提示是否确定关闭
- JAVA-实现POJO 到XML的相互转换
- 我的Java开发学习之旅------>在Dos环境下Java内部类的编译和运行
- SpringMVC+Spring3+Hibernate4开发环境的搭建
- Java相对路径读取文件
- Spring整合JMS(四)——事务管理