动态更新Eureka实例元数据

FVl*_*lad 5 spring-cloud netflix-eureka spring-cloud-netflix

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

yon*_*oon 8

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

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

PUT /eureka/apps/appID/instanceID/metadata?key=value
Run Code Online (Sandbox Code Playgroud)

  • 如果要从另一个eureka客户端接收任何数据更改(包括元数据),则它们之间有很多缓存-eureka服务器响应缓存,eureka客户端缓存。因此,如果您想快速从另一个eureka客户那里收到这些更改,则还需要调整其他选项。 (2认同)