Bootstrap

13 初步认识@EnableDiscoveryClient注解

这个注解的作用主要是将来可以把服务信息暴露给消费端,

  • 服务ip、端口
  • 服务名称

在这里插入图片描述

1 找到8001服务提供者,添加注解

  • import org.springframework.cloud.client.discovery.DiscoveryClient;
  • 注意,上面的包别导错

在这里插入图片描述

2 在8001服务的控制器中添加如下内容

在这里插入图片描述

    @Resource
    DiscoveryClient discoveryClient;

    @GetMapping(value="/payment/discovery")
    public Object discover(){

        List<String> services = discoveryClient.getServices();
        for (String service : services) {
            log.info("****包含服务{}",service);
        }
        //这个方法的参数可以在Eureka服务注册列表找到,也可以在yml中,spring.application.name中找到
        List<ServiceInstance> instances = discoveryClient.getInstances("CLOUD-PAYMENT-SERVICE");
        for (ServiceInstance instance : instances) {
            log.info(instance.getServiceId()+"\t"+instance.getHost()+"\t"+instance.getPort()+"\t"+instance.getUri());
        }

        return discoveryClient;
    }

3 请求测试

  • 浏览器

如下结果表示在Eureka服务器上注册了两个微服务

  • cloud-payment-server
  • cloud-order-server

在这里插入图片描述

  • 控制台

结果显示了Cloud-payment-service是集群,打印了两台机器的信息
在这里插入图片描述

;