nacos自定义注册服务信息

该文章展示了如何使用Nacos客户端进行服务注册和发现。通过添加Nacos的依赖,创建NamingService实例连接服务器,然后注册服务信息,最后实现根据服务名获取IP和端口的功能。测试代码中,服务名为nacosService,并打印出发现的服务地址。
摘要由CSDN通过智能技术生成

使用nacos注册服务信息。参考文档https://nacos.io/zh-cn/docs/v2/guide/user/sdk.html

使用依赖

<dependency>
            <groupId>com.alibaba.nacos</groupId>
            <artifactId>nacos-client</artifactId>
            <version>2.0.3</version>
        </dependency>

编辑代码,主要实现服务的基本注册,服务发现信息。这里为了简便就写死数据信息。

public class NacosRegistry {

    private NamingService namingService;

    /**
     * 服务链接
     * @param serverAddress
     * @throws NacosException
     */
    public void connect(String serverAddress) throws NacosException {
        this.namingService = NamingFactory.createNamingService(serverAddress);
    }

    /**
     * 注册服务信息
     * @param serviceName
     * @throws NacosException
     */
    public void register(String serviceName) throws NacosException {
       String host = "127.0.0.1";
       int port = 8080;
        Instance instance = new Instance();
        instance.setPort(port);
        instance.setIp(host);
        instance.setServiceName(serviceName);
        this.namingService.registerInstance(serviceName,instance);
    }

    /**
     * 根据服务名称获取服务的ip+port
     * @param serviceName
     * @return
     * @throws NacosException
     */
    public String discovery(String serviceName) throws NacosException {
        List<Instance> allInstances = this.namingService.getAllInstances(serviceName);
        if(allInstances == null || allInstances.isEmpty()){
            return null;
        }
        Random random = new Random();
        int i = random.nextInt(allInstances.size());
        Instance instance = allInstances.get(i);
        return instance.getIp()+":"+instance.getPort();
    }

}

测试代码

    public static void main(String[] args) throws NacosException {
        NacosRegistry nacosRegistry = new NacosRegistry();
        nacosRegistry.connect("127.0.0.1:8848");

        String serviceName = "nacosService";
        nacosRegistry.register(serviceName);

        String discovery = nacosRegistry.discovery(serviceName);
        System.out.println(discovery);

        try {
            Thread.sleep(500000);
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值