动态更新 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
当 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