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

最佳答案

如果要自己从eureka客户端更新任何元数据,只需使用com.netflix.appinfo.ApplicationInfoManager object并调用registerAppMetadata(Map<String, String>)
如果是这样,此信息通常会很快或至少在30秒内在Eureka Server中更新。您可以使用DI获取ApplicationInfoManger的实例。

如果要更新其他服务实例的元数据,只需调用如下的REST API到eureka服务器。

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

08-04 17:24