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