
描述
注册一个实例到服务。
- 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;
| 名称 | 类型 | 描述 |
|---|---|---|
| serviceName | 字符串 | 服务名 |
| ip | 字符串 | 服务实例IP |
| port | int | 服务实例port |
| clusterName | 字符串 | 集群名 |
| instance | 参见代码注释 | 实例属性 |
无
- 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
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
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
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
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
clusters, EventListener listener) throws NacosException;
| 名称 | 类型 | 描述 |
|---|---|---|
| serviceName | 字符串 | 服务名 |
| clusters | List | 集群列表 |
| listener | EventListener | 回调listener |
无
-
- NamingService naming = NamingFactory.createNamingService(System.getProperty("serveAddr"));
- naming.unsubscribe("nacos.test.3", event -> {});