获取尤里卡实例ID

Vic*_*tit 3 netflix-eureka spring-cloud-netflix

我想知道是否有一种Eureka客户端知道它的实际instanceId的方法(我正在寻找一种在同一主机和分布式conf上均可使用的解决方案)。

到目前为止,我使用的是手动定义的eureka.instance.instance-id: ${spring.application.name}:${random.int},但是每次访问它的值时,由于随机性,都会得到一个新值。因此,它与注册时生成并提供给服务器的总是不同的。

law*_*wal 5

是的,RandomValuePropertySource是无状态的,因此您每次访问该属性都会获得新的值。

首先,您可能要考虑使用host:port作为instanceId,那里没有随机性。

如果这还不够好,请注入EurekaInstanceConfigBean并获取instanceId。(需要一些测试)

最好的方法是在SpringApplication.run之前自行设置instance-id具有系统属性。