作用:
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中的信息吧,如下图: