Nacos系列之服务注册与发现API讲解

Nacos自身提供了SDK和API来完成服务注册与发现等操作,SDK本质上就是针对HTTP请求的一层封装,因为服务端只提供了REST接口,那么我们带着规范,去了解一下nacos的核心接口:

1、注册实例

1、作用:将服务地址信息注册到Nacos Server中

2、API:/nacos/v1/ns/instance   (POST)

3、SDK:

void registerInstance(String serviceName , String ip , int port) throws NacosException;

void registerInstance(String serviceName, String ip,int port,String clusterName) throws NacosException;

void registerInstance(String serviceName,Instance instance) throws NacosException;

4、讲解:

serviceName:服务名称,相当于配置文件中的spring.application.name

ip:服务实例ip

port:服务实例port

clusterName:集群名称,标识当前服务实例属于哪个集群

instance:实例属性,其实就是把上面的参数封装成一个对象

5、调用方式

NamingService naming=NamingFactory.createNamingService(System.getProperty("serveAddr"));
naming.registerInstance("nacos_name","192.168.80.1",8080,"DEFAULT");

2、获取全部实例

1、作用:根据服务名称从Nacos注册中心上获取所有服务的实例集合

2、API: /nacos/v1/ns/instance/list    (GET)

3、SDK:

List<Instance> getAllInstances(String serviceName) throws NacosException;
List<Instance> getAllInstances(String serviceName,List<String> cluster) throws NacosException;

4、讲解:

serviceName:服务名称

cluster:集群列表,入参是一个String集合

5、调用方式:

NamingService naming=NamingFactory.createNamingService(System.getProperty("serveAddr"));
System.out.println(naming.getAllInstances("nacos_name),true);

3、服务监控

1、作用:为了实时让客户端感知到服务提供者实例的变化,相当于Eureka中的心跳机制

2、API:/nacos/v1/ns/instance/list   (GET) 

3、SDK:

void subscribe(String serviceName,EventListener listener) throws NacosException;
void subscribe(String serviceName,List<String> clusters,EventListener listener) throw NacosException;

4、讲解:

EventListener:当提供者服务实例出现异常,比如上下限时,会调用一个事件回调

监听有两种方式:第一种:客户端调用/nacos/v1/ns/instance/list进行定时轮询

                             第二种:基于DatagramSocket的UDP协议,实现服务端的主动推送

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值