我有一个用Spring Boot编写的微服务,并利用Spring Cloud Kubernetes在Kubernetes中运行,如下所示:
- 一个Kubernetes服务(
foo-service
) - 位于服务后面的两个
foo-service
实例(pod),每个实例运行Spring Boot应用程序
我可以使用Spring Cloud KubernetesDiscoveryClient
列出服务的所有实例,如下所示:
List<ServiceInstance> allInstances = discoveryClient.getInstances("foo-service")
我如何获得执行此代码的实例的instanceId ?
实例名Pod的名称,Pod的名称是一样的主机名。
例如使用
InetAddress.getLocalHost().getHostName()
我使用了类似但不同的方法来获取ip地址:
ServiceInstance myInstance = discoveryClient.getInstances(serviceId)
.find(instance -> {
instance.host == InetAddress.getLocalHost().hostAddress
})
适合我。