當(dāng)項(xiàng)目越來越大,比如kafka在業(yè)務(wù)系統(tǒng)中作為生產(chǎn)者使用,必須配置hosts 主機(jī)和 ip的映射,非常麻煩,甚至惡心
有了JavaHost虛擬DNS就可以解決這個(gè)問題,加載項(xiàng)目的配置文件,更改JVM的DNS,就可以不用配置DNS了
1.新建一個(gè)? vdns.properties 配置文件 存儲(chǔ) 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());
// 驗(yàn)證一下解析是否正確
System.out.println("IP:" + InetAddress.getByName("www.baidu.com").getHostAddress());
}