zoukankan      html  css  js  c++  java
  • Spring Cloud 获取注册中心所有服务以及服务下的所有实例

    注册中心现有服务与实例数:

    在任意客户端填写如下代码:

    /**
     * import org.springframework.cloud.client.ServiceInstance;
     * import org.springframework.cloud.client.discovery.DiscoveryClient;
     *
     * 获取每一个服务下面实例
     * 测试时,可以使用多个端口启动服务实例
     */
    @Autowired
    private DiscoveryClient discoveryClient;
    
    @GetMapping("/serviceurl")
    public Map<String, List<ServiceInstance>> serviceUrl() {
        Map<String, List<ServiceInstance>> msl = new HashMap<>();
        List<String> services = discoveryClient.getServices();
        for (String service : services) {
            List<ServiceInstance> sis = discoveryClient.getInstances(service);
            msl.put(service, sis);
        }
        return msl;
    }
    

      

    返回结果:

    {
        "XXXXX-microservice-testprovider": [
            {
                "host": "XXX.XXX.XXX.XXX",
                "port": 30001,
                "metadata": {
                    "management.port": "30001",
                    "jmx.port": "54767"
                },
                "uri": "http://XXX.XXX.XXX.XXX:30001",
                "serviceId": "XXXXX-MICROSERVICE-TESTPROVIDER",
                "secure": false,
                "instanceInfo": {
                    "instanceId": "XXX.XXX.XXX.XXX:XXXXX-microservice-testprovider:30001",
                    "app": "XXXXX-MICROSERVICE-TESTPROVIDER",
                    "appGroupName": null,
                    "ipAddr": "XXX.XXX.XXX.XXX",
                    "sid": "na",
                    "homePageUrl": "http://XXX.XXX.XXX.XXX:30001/",
                    "statusPageUrl": "http://XXX.XXX.XXX.XXX:30001/info",
                    "healthCheckUrl": "http://XXX.XXX.XXX.XXX:30001/health",
                    "secureHealthCheckUrl": null,
                    "vipAddress": "XXXXX-microservice-testprovider",
                    "secureVipAddress": "XXXXX-microservice-testprovider",
                    "countryId": 1,
                    "dataCenterInfo": {
                        "@class": "com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo",
                        "name": "MyOwn"
                    },
                    "hostName": "XXX.XXX.XXX.XXX",
                    "status": "UP",
                    "leaseInfo": {
                        "renewalIntervalInSecs": 1,
                        "durationInSecs": 2,
                        "registrationTimestamp": 1521525318562,
                        "lastRenewalTimestamp": 1521525692105,
                        "evictionTimestamp": 0,
                        "serviceUpTimestamp": 1521525318562
                    },
                    "isCoordinatingDiscoveryServer": false,
                    "metadata": {
                        "management.port": "30001",
                        "jmx.port": "54767"
                    },
                    "lastUpdatedTimestamp": 1521525318562,
                    "lastDirtyTimestamp": 1521525318499,
                    "actionType": "ADDED",
                    "asgName": null,
                    "overriddenStatus": "UNKNOWN"
                }
            }
        ],
        "XXXXX-microservice-testconsumer": [
            {
                "host": "XXX.XXX.XXX.XXX",
                "port": 30003,
                "metadata": {
                    "management.port": "30003",
                    "jmx.port": "55025"
                },
                "uri": "http://XXX.XXX.XXX.XXX:30003",
                "serviceId": "XXXXX-MICROSERVICE-TESTCONSUMER",
                "secure": false,
                "instanceInfo": {
                    "instanceId": "XXX.XXX.XXX.XXX:XXXXX-microservice-testconsumer:30003",
                    "app": "XXXXX-MICROSERVICE-TESTCONSUMER",
                    "appGroupName": null,
                    "ipAddr": "XXX.XXX.XXX.XXX",
                    "sid": "na",
                    "homePageUrl": "http://XXX.XXX.XXX.XXX:30003/",
                    "statusPageUrl": "http://XXX.XXX.XXX.XXX:30003/info",
                    "healthCheckUrl": "http://XXX.XXX.XXX.XXX:30003/health",
                    "secureHealthCheckUrl": null,
                    "vipAddress": "XXXXX-microservice-testconsumer",
                    "secureVipAddress": "XXXXX-microservice-testconsumer",
                    "countryId": 1,
                    "dataCenterInfo": {
                        "@class": "com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo",
                        "name": "MyOwn"
                    },
                    "hostName": "XXX.XXX.XXX.XXX",
                    "status": "UP",
                    "leaseInfo": {
                        "renewalIntervalInSecs": 1,
                        "durationInSecs": 2,
                        "registrationTimestamp": 1521525777701,
                        "lastRenewalTimestamp": 1521525781698,
                        "evictionTimestamp": 0,
                        "serviceUpTimestamp": 1521525207494
                    },
                    "isCoordinatingDiscoveryServer": false,
                    "metadata": {
                        "management.port": "30003",
                        "jmx.port": "55025"
                    },
                    "lastUpdatedTimestamp": 1521525777701,
                    "lastDirtyTimestamp": 1521525777639,
                    "actionType": "ADDED",
                    "asgName": null,
                    "overriddenStatus": "UNKNOWN"
                }
            },
            {
                "host": "XXX.XXX.XXX.XXX",
                "port": 30002,
                "metadata": {
                    "management.port": "30002",
                    "jmx.port": "55014"
                },
                "uri": "http://XXX.XXX.XXX.XXX:30002",
                "serviceId": "XXXXX-MICROSERVICE-TESTCONSUMER",
                "secure": false,
                "instanceInfo": {
                    "instanceId": "XXX.XXX.XXX.XXX:XXXXX-microservice-testconsumer:30002",
                    "app": "XXXXX-MICROSERVICE-TESTCONSUMER",
                    "appGroupName": null,
                    "ipAddr": "XXX.XXX.XXX.XXX",
                    "sid": "na",
                    "homePageUrl": "http://XXX.XXX.XXX.XXX:30002/",
                    "statusPageUrl": "http://XXX.XXX.XXX.XXX:30002/info",
                    "healthCheckUrl": "http://XXX.XXX.XXX.XXX:30002/health",
                    "secureHealthCheckUrl": null,
                    "vipAddress": "XXXXX-microservice-testconsumer",
                    "secureVipAddress": "XXXXX-microservice-testconsumer",
                    "countryId": 1,
                    "dataCenterInfo": {
                        "@class": "com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo",
                        "name": "MyOwn"
                    },
                    "hostName": "XXX.XXX.XXX.XXX",
                    "status": "UP",
                    "leaseInfo": {
                        "renewalIntervalInSecs": 1,
                        "durationInSecs": 2,
                        "registrationTimestamp": 1521525776047,
                        "lastRenewalTimestamp": 1521525782150,
                        "evictionTimestamp": 0,
                        "serviceUpTimestamp": 1521525776047
                    },
                    "isCoordinatingDiscoveryServer": false,
                    "metadata": {
                        "management.port": "30002",
                        "jmx.port": "55014"
                    },
                    "lastUpdatedTimestamp": 1521525776047,
                    "lastDirtyTimestamp": 1521525775985,
                    "actionType": "ADDED",
                    "asgName": null,
                    "overriddenStatus": "UNKNOWN"
                }
            }
        ]
    }
    

      

  • 相关阅读:
    Java深入学习31:ArrayList并发异常以及解决方案
    Java深入学习30:CAS中的ABA问题以及解决方案
    Java深入学习29:线程等待和唤醒的两个方案
    Redis学习05:Springboot集成Redis集群cluster
    项目总结66:Springboot项目继承kafka集群
    项目总结65:内存溢出OOM问题处理
    异常处理009:Windows10远程桌面连接提示:出现身份验证错误,要求的函数不受支持
    项目总结64:分别使用Redisson和Zookeeper分布式锁模拟模拟抢红包业务
    项目总结63:使用Spring AOP和BindingResult实现对接口的请求数据校验,并用@ExceptionHandler返回校验结果
    Java深入学习04:深入理解HashMap
  • 原文地址:https://www.cnblogs.com/hfultrastrong/p/8608903.html
Copyright © 2011-2022 走看看