Springboot集成Nacos2「元数据」

462 阅读1分钟

在日常开发中,大家可能对数据的使用比较少,但是在元数据中可以显示一些服务的信息,例如:注册时间。

一、服务注册到Nacos默认的元数据

二、直接上代码

下面基于东小西:Springboot集成Nacos2「服务注册与发现」代码编写。

1. 编写 springcloud-nacos-discovery 代码

/**
 * nacos注册服务端时,修改改服务详情中的元数据
 */
@Slf4j
@Configuration
@ConditionalOnNacosDiscoveryEnabled
@AutoConfigureBefore({SimpleDiscoveryClientAutoConfiguration.class, CommonsClientAutoConfiguration.class})
public class NacosMetadataConfig {

    @Value("${spring.application.name}")
    private String applicationName;

    @Bean
    @ConditionalOnMissingBean
    @ConditionalOnProperty(value = {"spring.cloud.nacos.discovery.watch.enabled"}, matchIfMissing = true)
    public NacosWatch nacosWatch(NacosDiscoveryProperties nacosDiscoveryProperties) {

        nacosDiscoveryProperties.getMetadata().put("startup.time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
        nacosDiscoveryProperties.getMetadata().put("applicationName",applicationName);
        return new NacosWatch(nacosDiscoveryProperties);
    }
}

2. 启动后查看元数据

3. 编写 springcloud-nacos-discovery-client 代码,从消费服务角度查看元数据

@GetMapping("/metadata")
    public String metadata() {
        ServiceInstance serviceInstance = loadBalancerClient.choose("springcloud-nacos-discovery");
        return "metadata : " + serviceInstance.getMetadata().toString();
    }

访问http://localhost:6005/springcloud-nacos-discovery-client/metadata

响应结果metadata : {startup.time=2022-03-21 11:08:24, preserved.register.source=SPRING_CLOUD, applicationName=springcloud-nacos-discovery}

springboot/springcloud 集成 Nacos demo:springboot-nacos gitee