服务发现可以获取Eureka注册中心里面已经注册的微服务的相关信息,
可以在controll中暴露相关的接口
@Autowired
private DiscoveryClient client;
@GetMapping(value = "/dsicovery")
public Object discovery() {
List<String> list = client.getServices();
System.out.println("----------"+ list);
List<ServiceInstance> serverList = client.getInstances("MICROSERVICECLOUD-DEPT");
for (ServiceInstance serviceInstance : serverList) {
System.out.println(serviceInstance.getServiceId()+":" +serviceInstance.getPort());
}
return this.client;
}
在启动类上加上 @EnableDiscoveryClient注解,允许该微微服务被发现
@EnableDiscoveryClient // 允许被外界发现该微服务
访问对应地址,页面输出如下结果
{
services: [
"microservicecloud-dept"
],
localServiceInstance: {
host: "192.168.18.1",
port: 8001,
secure: false,
uri: "http://192.168.18.1:8001",
serviceId: "microservicecloud-dept",
metadata: { }
}
}
控制台打印如下结果
----------[microservicecloud-dept]
MICROSERVICECLOUD-DEPT:8001