动态更新 Eureka 实例元数据

Dynamically update Eureka instance metadata

当 Spring Cloud Eureka 实例启动时,我可以静态定义一些实例元数据(在我的 application.yml 中的 eureka.instance.metadataMap.* 中)或动态(例如使用 EurekaInstanceConfigBean)。但是一旦实例被注册,这个元数据在我更新配置 bean 后就不再在 Eureka 中更新。 有没有办法定义一些将在 Eureka 中动态更新的元数据?所以 Eureka 的工作方式类似于每个实例的键值存储。

如果你想为自己更新来自尤里卡客户端的任何元数据,只需使用com.netflix.appinfo.ApplicationInfoManager对象并调用registerAppMetadata(Map<String, String>)。 如果是这样,此信息通常会很快或至少在 Eureka Server 中更新 30sec.You 可以使用 DI 获取 ApplicationInfoManger 的实例。

如果您想更新其他服务实例的元数据,只需像下面这样调用 REST API 到 eureka 服务器。

PUT /eureka/apps/appID/instanceID/metadata?key=value