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

posted on   荣锋亮  阅读(54)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用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 使用

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示