当项目越来越大,比如kafka在业务系统中作为生产者使用,必须配置hosts 主机和 ip的映射,非常麻烦,甚至恶心
有了JavaHost虚拟DNS就可以解决这个问题,加载项目的配置文件,更改JVM的DNS,就可以不用配置DNS了
1.新建一个 vdns.properties 配置文件 存储 dns的映射
#MySQL user database
user.mysql.guides.leopard.io=127.0.0.1
#Redis user database
user.redis.guides.leopard.io=127.0.0.2
#Redis session database
session.redis.guides.leopard.io=127.0.0.3
#www.baidu.com 183.232.231.172
www.baidu.com=183.232.231.127
加入 pom 引用
2. 代码如下:
private static void loadDns() throws Exception {
Properties properties = getProperties();
JavaHost.updateVirtualDns(properties);
}
private static Properties getProperties() throws Exception{
Properties pro = new Properties();
FileInputStream in = new FileInputStream("D:/workspace/hostschange/src/main/resources/vdns.properties");
pro.load(in);
in.close();
return pro;
}
public static void main(String[] args) throws Exception {
loadDns();
JavaHost.printAllVirtualDns();// 打印所有虚拟DNS记录
System.out.println("IP:" + InetAddress.getByName("user.mysql.guides.leopard.io").getHostAddress());
// 验证一下解析是否正确
System.out.println("IP:" + InetAddress.getByName("www.baidu.com").getHostAddress());
}