jvm 自定义dns
对于jvm 进行自定义dns 可以解决不少问题(比如特定系统需要一个额外的域名改写,但是并不希望进行全局修改)
对于java 1.4-8 我们是可以直接进行dns 配置的(系统属性就可以了),之后的版本就不行了,具体参考dnsjava 的说明
实际配置
- 参考配置
-Dsun.net.spi.nameservice.provider.1=dns,sun
-Dsun.net.spi.nameservice.nameservers=127.0.0.1
- 代码效果
集成了cnsul dns 的简单示例
启动consul
consul agent --dev -dns-port=53
注册服务
curl --request PUT --data '{
"name": "my-service",
"id": "my-service-1",
"tags": ["web"],
"address": "127.0.0.1",
"port": 8080
}' http://127.0.0.1:8500/v1/agent/service/register
curl --request PUT --data '{
"name": "my-service",
"id": "my-service-2",
"tags": ["web"],
"address": "192.168.2.1",
"port": 8080
}' http://127.0.0.1:8500/v1/agent/service/register
App.java
package com.dalong;
import java.net.InetAddress;
import java.net.UnknownHostException;
public class App {
public static void main(String[] args) throws UnknownHostException {
InetAddress inetAddress = InetAddress.getByName("my-service.service.consul");
System.out.println("Host Name: " + inetAddress.getHostAddress());
}
}
说明
以上是一个简单配置说明,主要是记录下
参考资料
https://javadoc.io/doc/dnsjava/dnsjava/3.0.0/org/xbill/DNS/spi/DNSJavaNameService.html
https://github.com/dnsjava/dnsjava
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2022-09-06 uptrace 基于opentelemetry的开源apm
2018-09-06 hasura graphql server event trigger 试用
2017-09-06 gitlab pipelines 使用