• 云原生nacos之服务发现SDK


    注册实例

    描述

    注册一个实例到服务。

    1. void registerInstance(String serviceName, String ip, int port) throws NacosException;
    2. void registerInstance(String serviceName, String ip, int port, String clusterName) throws NacosException;
    3. void registerInstance(String serviceName, Instance instance) throws NacosException;

    请求参数

    名称类型描述
    serviceName字符串服务名
    ip字符串服务实例IP
    portint服务实例port
    clusterName字符串集群名
    instance参见代码注释实例属性

    返回参数

    请求示例

    1. NamingService naming = NamingFactory.createNamingService(System.getProperty("serveAddr"));
    2. naming.registerInstance("nacos.test.3", "11.11.11.11", 8888, "TEST1");
    3. Instance instance = new Instance();
    4. instance.setIp("55.55.55.55");
    5. instance.setPort(9999);
    6. instance.setHealthy(false);
    7. instance.setWeight(2.0);
    8. Map instanceMeta = new HashMap<>();
    9. instanceMeta.put("site", "et2");
    10. instance.setMetadata(instanceMeta);
    11. Service service = new Service("nacos.test.4");
    12. service.setApp("nacos-naming");
    13. service.sethealthCheckMode("server");
    14. service.setEnableHealthCheck(true);
    15. service.setProtectThreshold(0.8F);
    16. service.setGroup("CNCF");
    17. Map serviceMeta = new HashMap<>();
    18. serviceMeta.put("symmetricCall", "true");
    19. service.setMetadata(serviceMeta);
    20. instance.setService(service);
    21. Cluster cluster = new Cluster();
    22. cluster.setName("TEST5");
    23. AbstractHealthChecker.Http healthChecker = new AbstractHealthChecker.Http();
    24. healthChecker.setExpectedResponseCode(400);
    25. healthChecker.setCurlHost("USer-Agent|Nacos");
    26. healthChecker.setCurlPath("/xxx.html");
    27. cluster.setHealthChecker(healthChecker);
    28. Map clusterMeta = new HashMap<>();
    29. clusterMeta.put("xxx", "yyyy");
    30. cluster.setMetadata(clusterMeta);
    31. instance.setCluster(cluster);
    32. naming.registerInstance("nacos.test.4", instance);

    注销实例

    描述

    删除服务下的一个实例。

    1. void deregisterInstance(String serviceName, String ip, int port) throws NacosException;
    2. void deregisterInstance(String serviceName, String ip, int port, String clusterName) throws Nacos

    请求参数

    名称类型描述
    serviceName字符串服务名
    ip字符串服务实例IP
    portint服务实例port
    clusterName字符串集群名

    返回参数

    请求示例

    1. NamingService naming = NamingFactory.createNamingService(System.getProperty("serveAddr"));
    2. naming.deregisterInstance("nacos.test.3", "11.11.11.11", 8888, "DEFAULT");

    获取全部实例

    描述

    获取服务下的所有实例。

    1. List<Instance> getAllInstances(String serviceName) throws NacosException;
    2. List<Instance> getAllInstances(String serviceName, List<String> clusters) throws NacosException;

    请求参数

    名称类型描述
    serviceName字符串服务名
    clustersList集群列表

    返回参数

    List 实例列表。

    请求示例

    1. NamingService naming = NamingFactory.createNamingService(System.getProperty("serveAddr"));
    2. System.out.println(naming.getAllInstances("nacos.test.3"));

    获取健康或不健康实例列表

    描述

    根据条件获取过滤后的实例列表。

    1. List<Instance> selectInstances(String serviceName, boolean healthy) throws NacosException;
    2. List<Instance> selectInstances(String serviceName, List<String> clusters, boolean healthy) throws NacosException;

    请求参数

    名称类型描述
    serviceName字符串服务名
    clustersList集群列表
    healthyboolean是否健康

    返回参数

    List 实例列表。

    请求示例

    1. NamingService naming = NamingFactory.createNamingService(System.getProperty("serveAddr"));
    2. System.out.println(naming.selectInstances("nacos.test.3", true));

    获取一个健康实例

    描述

    根据负载均衡算法随机获取一个健康实例。

    1. Instance selectOneHealthyInstance(String serviceName) throws NacosException;
    2. Instance selectOneHealthyInstance(String serviceName, List<String> clusters) throws NacosException;

    请求参数

    名称类型描述
    serviceName字符串服务名
    clustersList集群列表

    返回参数

    Instance 实例。

    请求示例

    1. NamingService naming = NamingFactory.createNamingService(System.getProperty("serveAddr"));
    2. System.out.println(naming.selectOneHealthyInstance("nacos.test.3"));

    监听服务

    描述

    监听服务下的实例列表变化。

    1. void subscribe(String serviceName, EventListener listener) throws NacosException;
    2. void subscribe(String serviceName, List clusters, EventListener listener) throws NacosException;

    请求参数

    名称类型描述
    serviceName字符串服务名
    clustersList集群列表
    listenerEventListener回调listener

    返回参数

    请求示例

    1. NamingService naming = NamingFactory.createNamingService(System.getProperty("serveAddr"));
    2. naming.subscribe("nacos.test.3", event -> {
    3. if (event instanceof NamingEvent) {
    4. System.out.println(((NamingEvent) event).getServceName());
    5. System.out.println(((NamingEvent) event).getInstances());
    6. }
    7. });

    取消监听服务

    描述

    取消监听服务下的实例列表变化。

    1. void unsubscribe(String serviceName, EventListener listener) throws NacosException;
    2. void unsubscribe(String serviceName, List clusters, EventListener listener) throws NacosException;

    请求参数

    名称类型描述
    serviceName字符串服务名
    clustersList集群列表
    listenerEventListener回调listener

    返回参数

    请求示例

    1. NamingService naming = NamingFactory.createNamingService(System.getProperty("serveAddr"));
    2. naming.unsubscribe("nacos.test.3", event -> {});

  • 相关阅读:
    LeetCode:318. 最大单词长度乘积(C++)
    单片机FLASH下载算法的制作
    05、GO数组与切片
    LeetCode 139 单词拆分
    网络通信基础(网络通信基本概念+TCP/IP 模型)
    dpabi预处理报错未定义变量cfg,paraller
    IP-adapter masking
    设计模式之观察者模式、访问者模式与模板方法模式
    ClickHouse删除数据之delete问题详解
    【HackTheBox】 meow
  • 原文地址:https://blog.csdn.net/m0_62436868/article/details/127699333