Skip to content

如何设置元数据标签

Neptune edited this page Nov 19, 2022 · 10 revisions

基于启动参数设置

统一设置

① 通过VM arguments设置,用法是参数前面加-Dmetadata.,适用于所有注册中心。例如:

-Dmetadata.abc=123

② 通过Program arguments设置,用法是参数前面加--,适用于所有注册中心。例如:

--spring.cloud.discovery.metadata.abc=123

不同注册中心原生设置

通过Program arguments设置,用法是参数前面加--。例如:

--spring.cloud.nacos.discovery.metadata.abc=123

基于配置文件设置

统一设置

适用于所有注册中心

例如:

spring.cloud.discovery.metadata.abc=123

不同注册中心原生设置

例如:

spring.cloud.nacos.discovery.metadata.abc=123

基于系统参数设置

统一设置

适用于所有注册中心

例如:

System.setProperty("spring.cloud.discovery.metadata.abc", "123");

不同注册中心原生设置

例如:

System.setProperty("spring.cloud.nacos.discovery.metadata.abc", "123");

基于环境装载设置

该方式只适用于Discovery 6.20.0及以上版本的集成方式

public class MyEnvironmentPostProcessor implements EnvironmentPostProcessor, Ordered {
    @Override
    public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {
        if (EnvironmentUtil.isStandardEnvironment(environment)) {
            DiscoveryMetaDataPreInstallation.getMetadata().put("abc", "123");
        }
    }

    @Override
    public int getOrder() {
        return Ordered.HIGHEST_PRECEDENCE;
    }
}

在src/main/resources/META-INF/spring.factories加上

org.springframework.boot.env.EnvironmentPostProcessor=\
com.xxx.yyy.zzz.MyEnvironmentPostProcessor

元数据装载优先级顺序

以Nacos注册中心的版本号元数据为例,装载元数据的优先级顺序由高到底为

  • VM arguments方式的启动参数-Dmetadata.version
  • 环境装载EnvironmentPostProcessor
  • Git编译插件git-commit-id-plugin
  • Program arguments方式的启动参数--spring.cloud.nacos.discovery.metadata.version(Spring Cloud Alibaba原生方式)
  • 配置文件spring.cloud.nacos.discovery.metadata.version(Spring Cloud Alibaba原生方式)
  • Program arguments方式的启动参数--spring.cloud.discovery.metadata.version(Nepxion Discovery统一方式)
  • 配置文件spring.cloud.discovery.metadata.version(Nepxion Discovery统一方式)




2017-2050 ©Nepxion Studio Apache License

           

Total visits

讲义篇

集成篇

概念篇

实践篇

功能篇

配置篇

扩展篇

测试篇

升级篇

贡献篇

Clone this wiki locally