阅读 482

Nacos:服务详情的元数据列表增加服务发布时间

「本文已参与好文召集令活动,点击查看:后端、大前端双赛道投稿,2万元奖池等你挑战!

日积月累,水滴石穿 😄

前言

在使用Nacos一段时间后,由于频繁的发布服务,但又不知道这个服务最新的发布时间,导致不确定是不是最新的版本。领导就觉得,怎么能这样呢?那既然领导有了需求,那我们这些小喽啰就要干出来。

最终效果图

先贴一张最终效果图! image.png

开发过程

我们可以看到在未开始开发前,元数据里面是有默认数据的。默认为:preserved.register.source=SPRING_CLOUD image.png

那这个默认配置是在哪里配置的呢?该配置位于NacosDiscoveryPropertiesinit方法中! image.png 根据上图,我们可以得知metadata的数据结构为 Map。

private Map<String, String> metadata = new HashMap();
复制代码

那我们先来看一看NacosDiscoveryProperties 类。从类名我们可以知道这是 Nacos注册中心的配置类。(题外话:那我们就可以推测,那应该还有一个NacosConfigProperties类。作为Nacos配置中心的配置类。 image.png 看到这@ConfigurationProperties("spring.cloud.nacos.discovery") ,心想这不是简简单单吗?搞起!!!

spring:
  application:
    name: naocs-service
  profiles:
    active: dev
  cloud:
    nacos:
      config:
        group: ${spring.profiles.active}
        file-extension: yaml
        server-addr: 127.0.0.1:8848
        prefix: ${spring.application.name}
      discovery:
        server-addr: 127.0.0.1:8848
        group: ${spring.profiles.active}
        metadata:
          version: 1.0.0
          desc: 开发的小喽啰
复制代码

discovery节点下增加metadata接口。然后启动项目,前往Nacos服务详情列表进行查看。 image.png 看到这结果,有点小激动。但随即发现在配置文件里怎么获取当前时间呢???办法还是有滴!我们看到NacosDiscoveryProperties旁边有个小按钮,点击绿色的按钮。

image.png 然后会看到这一段代码:

@Bean
@ConditionalOnMissingBean
public NacosDiscoveryProperties nacosProperties() {
    return new NacosDiscoveryProperties();
}
复制代码

@Bean注解就不解释了。

@ConditionalOnMissingBean注解表示:当标注的 Bean 不存在时,则实例化当前Bean。那也就是代表我只需要提供这个NacosDiscoveryProperties的 Bean 对象,SpringBoot就会使用我们所提供的 NacosDiscoveryPropertiesBean 对象。

在启动类增加以下代码,当然你可以自己创建一个配置类,只要能被扫描到就行。

@Bean
public NacosDiscoveryProperties nacosProperties() {
    NacosDiscoveryProperties nacosDiscoveryProperties = new NacosDiscoveryProperties();
    Map<String, String> metadata = nacosDiscoveryProperties.getMetadata();
    metadata.put("startup.time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
                                 .format(new Date()));
    return nacosDiscoveryProperties;
}
复制代码

然后启动项目,查看服务的元数据。

image.png 看到结果美滋滋!领导开心我也开心。

  • 如你对本文有疑问或本文有错误之处,欢迎评论留言指出。如觉得本文对你有所帮助,欢迎点赞和关注。
文章分类
后端
文章标签