初步认识@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是集群,打印了两台机器的信息