注册实例
描述
注册一个实例到服务。
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;
请求参数
返回参数
无
请求示例
NamingService naming = NamingFactory.createNamingService(System.getProperty("serveAddr")); naming.registerInstance("nacos.test.3", "11.11.11.11", 8888, "TEST1"); Instance instance = new Instance(); instance.setIp("55.55.55.55"); instance.setPort(9999); instance.setHealthy(false); instance.setWeight(2.0); Map<String, String> instanceMeta = new HashMap<>(); instanceMeta.put("site", "et2"); instance.setMetadata(instanceMeta); Service service = new Service("nacos.test.4"); service.setApp("nacos-naming"); service.sethealthCheckMode("server"); service.setEnableHealthCheck(true); service.setProtectThreshold(0.8F); service.setGroup("CNCF"); Map<String, String> serviceMeta = new HashMap<>(); serviceMeta.put("symmetricCall", "true"); service.setMetadata(serviceMeta); instance.setService(service); Cluster cluster = new Cluster(); cluster.setName("TEST5"); AbstractHealthChecker.Http healthChecker = new AbstractHealthChecker.Http(); healthChecker.setExpectedResponseCode(400); healthChecker.setCurlHost("USer-Agent|Nacos"); healthChecker.setCurlPath("/xxx.html"); cluster.setHealthChecker(healthChecker); Map<String, String> clusterMeta = new HashMap<>(); clusterMeta.put("xxx", "yyyy"); cluster.setMetadata(clusterMeta); instance.setCluster(cluster); naming.registerInstance("nacos.test.4", instance);
注销实例
描述
删除服务下的一个实例。
void deregisterInstance(String serviceName, String ip, int port) throws NacosException; void deregisterInstance(String serviceName, String ip, int port, String clusterName) throws Nacos
请求参数
名称 | 类型 | 描述 |
serviceName | 字符串 | 服务名 |
ip | 字符串 | 服务实例IP |
port | int | 服务实例port |
clusterName | 字符串 | 集群名 |
返回参数
无
请求示例
NamingService naming = NamingFactory.createNamingService(System.getProperty("serveAddr")); naming.deregisterInstance("nacos.test.3", "11.11.11.11", 8888, "DEFAULT");
获取全部实例
描述
获取服务下的所有实例。
List<Instance> getAllInstances(String serviceName) throws NacosException; List<Instance> getAllInstances(String serviceName, List<String> clusters) throws NacosException;
请求参数
名称 | 类型 | 描述 |
serviceName | 字符串 | 服务名 |
clusters | List | 集群列表 |
返回参数
List 实例列表。
请求示例
NamingService naming = NamingFactory.createNamingService(System.getProperty("serveAddr")); System.out.println(naming.getAllInstances("nacos.test.3"));
获取健康或不健康实例列表
描述
根据条件获取过滤后的实例列表。
List<Instance> selectInstances(String serviceName, boolean healthy) throws NacosException; List<Instance> selectInstances(String serviceName, List<String> clusters, boolean healthy) throws NacosException;
请求参数
名称 | 类型 | 描述 |
serviceName | 字符串 | 服务名 |
clusters | List | 集群列表 |
healthy | boolean | 是否健康 |
返回参数
List 实例列表。
请求示例
NamingService naming = NamingFactory.createNamingService(System.getProperty("serveAddr")); System.out.println(naming.selectInstances("nacos.test.3", true));
获取一个健康实例
描述
根据负载均衡算法随机获取一个健康实例。
Instance selectOneHealthyInstance(String serviceName) throws NacosException; Instance selectOneHealthyInstance(String serviceName, List<String> clusters) throws NacosException;
请求参数
名称 | 类型 | 描述 |
serviceName | 字符串 | 服务名 |
clusters | List | 集群列表 |
返回参数
Instance 实例。
请求示例
NamingService naming = NamingFactory.createNamingService(System.getProperty("serveAddr")); System.out.println(naming.selectOneHealthyInstance("nacos.test.3"));
监听服务
描述
监听服务下的实例列表变化。
void subscribe(String serviceName, EventListener listener) throws NacosException; void subscribe(String serviceName, List<String> clusters, EventListener listener) throws NacosException;
请求参数
名称 | 类型 | 描述 |
serviceName | 字符串 | 服务名 |
clusters | List | 集群列表 |
listener | EventListener | 回调listener |
返回参数
无
请求示例
NamingService naming = NamingFactory.createNamingService(System.getProperty("serveAddr")); naming.subscribe("nacos.test.3", event -> { if (event instanceof NamingEvent) { System.out.println(((NamingEvent) event).getServceName()); System.out.println(((NamingEvent) event).getInstances()); } });
取消监听服务
描述
取消监听服务下的实例列表变化。
void unsubscribe(String serviceName, EventListener listener) throws NacosException; void unsubscribe(String serviceName, List<String> clusters, EventListener listener) throws NacosException;
请求参数
名称 | 类型 | 描述 |
serviceName | 字符串 | 服务名 |
clusters | List | 集群列表 |
listener | EventListener | 回调listener |
返回参数
无
请求示例
NamingService naming = NamingFactory.createNamingService(System.getProperty("serveAddr")); naming.unsubscribe("nacos.test.3", event -> {});