【SpringCloud】eureka 服务发现Discovery

对于注册进eureka server里面的微服务,可以通过服务发现来获得该服务的信息。

就是cloud-provider-payment8001和8002 provider都注册进了eureka注册中心,假设消费者80想看看这些端口号和服务名,那么应该怎么才取得到信息?
那么怎么实现了?
添加cloud-provider-payment8001中的controller

注意导包import org.springframework.cloud.client.discovery.DiscoveryClient;

 	@Resource
	 private DiscoveryClient discoveryClient;
    @GetMapping("/payment/discovery")
    public Object discovery(){
        List<String> services = discoveryClient.getServices();//获得服务列表的信息
        services.forEach(elem->{
            log.info("element:"+elem);
        });

        List<ServiceInstance> instances = discoveryClient.getInstances("CLOUD-PAYMENT-SERVICE");//获得对外暴露服务名称的id
        instances.forEach(instance ->{
            log.info(instance.getInstanceId()+"\t"+instance.getHost()+"\t"+instance.getPort()+"\t"+instance.getUri());
        });

        return discoveryClient;
    }

在主启动类添加@EnableDiscoveryClient
【SpringCloud】eureka 服务发现Discovery_第1张图片启动服务
去浏览器发送请求地址
【SpringCloud】eureka 服务发现Discovery_第2张图片
去后台看一下打印输出日志
在这里插入图片描述

你可能感兴趣的:(SpingCloud,eureka,中间件)