我已经将eureka服务器与微服务“helloworld”一起部署在了Cloud Foundry上。然后,将“helloworld”缩放到两个实例,因此我发现在尤里卡仪表板中有两个“helloworld”实例注册。

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

最佳答案

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

@Component
class DiscoveryClientSample implements 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");
    });

10-04 11:59