eureka服务发现(废弃)

介绍

对于注册进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


原文出处:/show_1EF5hu075B9A.html