@EnableDiscoveryClient怎么用

时间:2024-11-16 08:23:38

作用:
1、可以获取服务信息
2、用于向consul或者zookeeper作为注册中心的时候提供注册服务(就是提供注册服务的,不需要过多演示)

作用1的做法:
1、在Controller中加上DiscoveryClient对象

// DiscoveryClient来自于
@Resource
private DiscoveryClient discoveryClient;

2、代码编写

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

    // 获取微服务的名称信息
    List<String> services = discoveryClient.getServices();
    for (String element : services) {
    	// 日志信息,也会在控制台打印出来
        log.info("******element:"+element);
    }

    // 获取一个微服务名称下面的所有微服务,毕竟一个微服务名称,可以有多个微服务
    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 this.discoveryClient;
}

3、在主启动类上面加上@EnableDiscoveryClient注解

@EnableDiscoveryClient

4、可以直接通过http://localhost:8001/payment/discovery去访问了

作用1的结果:
浏览器:
在这里插入图片描述控制台:
在这里插入图片描述
作用1的解释:
上面控制台信息的作用如果想在清楚一点,那就看Eureka中的信息吧,如下图:
在这里插入图片描述