介绍
对于注册进eureka里面的微服务,可以通过服务发现来获得该服务的信息
也就是说提供一个接口,让别人访问该链接,可以浏览信息
改造 notice 工程
修改controller
增加下面代码
import org.springframework.cloud.client.discovery.DiscoveryClient;
@Autowired
private DiscoveryClient client;
@GetMapping(value="/discovery")
public Object discovery(){
//获取所有的服务
List<String> list=client.getServices();
System.out.println("----"+list);
//获取NOTICE-SERVICE服务实例
List<ServiceInstance> siList=client.getInstances("NOTICE-SERVICE");
for(ServiceInstance si : siList){
System.out.println(si.getServiceId()+"-"+si.getHost()+":"+si.getPort()+"-"+si.getUri());
}
return client;
}
com.netflix.discovery.DiscoveryClient需要依赖spring-cloud-starter-netflix-eureka-client
修改主启动类
注意:当使用 eureka server 时,不需要按照下面修改。
在类名上增加注解:
@EnableDiscoveryClient
测试
打开浏览器,访问 http://localhost:8001/notice/discovery ,显示信息如下:
{"discoveryClients":[{"order":0,"services":["notice-service","ums"]},{"order":0,"services":[]}],"services":["notice-service","ums"],"order":0}
控制台打印如下:
改造 ums工程
在controller中加下面代码:
@GetMapping(value="/discovery")
public Object discovery(){
return restTemplate.getForObject(NOTICE_URL+"/discovery/",Object.class);
}
访问 notice 工程的 discovery
