我可以检索发现客户端实例ID /名称吗?

时间:2016-11-30 11:43:17

标签: spring-cloud netflix-eureka spring-cloud-netflix

我已经在云代工厂部署了一个eureka服务器以及一个微服务“helloworld”。然后我将“helloworld”缩放到两个实例,因此我发现在eureka仪表板中有两个“helloworld”实例注册。

我想在运行时我消费“helloworld”是否有办法知道正在调用哪个实例?Cloud Foundry为它们分配了两个随机ID。基本上,如果我可以检索将是好的随机ID。

2 个答案:

答案 0 :(得分:0)

您可以使用Eureka的EurekaClient课程来获取有关特定服务的信息。 http://cloud.spring.io/spring-cloud-static/Camden.SR3/#_using_the_eurekaclient

答案 1 :(得分:0)

在springbooapplication类(主类)中使用以下命令在终端/控制台中打印所有实例:

@Component 类DiscoveryClientSample实现CommandLineRunner {

@Autowired
private DiscoveryClient discoveryClient;

@Override
public void run(String... strings) throws Exception {
    System.out.println(discoveryClient.description());
    discoveryClient.getInstances("helloworld").forEach((ServiceInstance serviceInstance) -> {
        System.out.println("Instance --> " + serviceInstance.getServiceId()
                + "\nServer: " + serviceInstance.getHost() + ":" + serviceInstance.getPort()
                + "\nURI: " + serviceInstance.getUri() + "\n\n\n");
    });