注意:
- spring-cloud-alibaba版本:2021.1
- spring-cloud版本: 2020.0.1
- spring-boot版本:2.4.4
- nacos版本:2.0.3
1.需求
正常来讲我们的服务注册到Nacos中是长这样的
元数据的信息看起来似乎对我们毫无作用,因此就在想是否可以在元数据中显示一些自己想要的信息,
例如:服务的注册时间
2.解决方案
直接看代码
/**
* 在服务注册至nacos客户端时,在服务详情中增加相应的元数据,增加服务注册时间
*/
@Configuration
@ConditionalOnNacosDiscoveryEnabled
@AutoConfigureBefore({SimpleDiscoveryClientAutoConfiguration.class, CommonsClientAutoConfiguration.class})
public class NacosDiscoveryClientAutoConfiguration {
public NacosDiscoveryClientAutoConfiguration() {
}
@Bean
@ConditionalOnMissingBean
public NacosDiscoveryProperties nacosProperties() {
return new NacosDiscoveryProperties();
}
@Bean
public DiscoveryClient nacosDiscoveryClient(NacosServiceDiscovery nacosServiceDiscovery) {
return new NacosDiscoveryClient(nacosServiceDiscovery);
}
@Bean
@ConditionalOnMissingBean
@ConditionalOnProperty(value = {"spring.cloud.nacos.discovery.watch.enabled"}, matchIfMissing = true)
public NacosWatch nacosWatch(NacosServiceManager nacosServiceManager, NacosDiscoveryProperties nacosDiscoveryProperties, ObjectProvider<ThreadPoolTaskScheduler> taskScheduler) {
//更改服务详情中的元数据,增加服务注册时间
nacosDiscoveryProperties.getMetadata().put("startup.time",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
return new NacosWatch(nacosServiceManager, nacosDiscoveryProperties, taskScheduler);
}
}
3.结论
项目启动之后就可以看到已经在元数据中添加了服务注册时间
有了服务上线时间之后,就可以现在nacos中查看服务是否正常启动完成
notes: 笔者最近也正在学习nacos,朋友们在遇到问题的时候可以私信交流,一起研究一下