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

简介: 在使用Nacos一段时间后,由于频繁的发布服务,但又不知道这个服务最新的发布时间,导致不确定是不是最新的版本。
日积月累,水滴石穿 😄

前言

在使用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
看到结果美滋滋!领导开心我也开心。

  • 如你对本文有疑问或本文有错误之处,欢迎评论留言指出。如觉得本文对你有所帮助,欢迎点赞和关注。
相关文章
|
4月前
|
缓存 安全 Nacos
nacos常见问题之服务一直在报token expired!如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
449 0
|
4月前
|
缓存 Java Nacos
nacos常见问题之节点元数据多一个7858接口如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
202 0
|
4月前
|
网络协议 Java Nacos
nacos常见问题之在web界面 上下线服务时报错 400如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
|
4月前
|
缓存 PHP Nacos
nacos常见问题之服务升级后nacos控制台看到都是不可用重启nacos后恢复如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
325 4
|
4月前
|
存储 Nacos 数据安全/隐私保护
【SpringCloud】Nacos的安装、Nacos注册、Nacos服务多级存储模型
【SpringCloud】Nacos的安装、Nacos注册、Nacos服务多级存储模型
67 1
|
1月前
|
负载均衡 监控 Java
SpringCloud常见面试题(一):SpringCloud 5大组件,服务注册和发现,nacos与eureka区别,服务雪崩、服务熔断、服务降级,微服务监控
SpringCloud常见面试题(一):SpringCloud 5大组件,服务注册和发现,nacos与eureka区别,服务雪崩、服务熔断、服务降级,微服务监控
SpringCloud常见面试题(一):SpringCloud 5大组件,服务注册和发现,nacos与eureka区别,服务雪崩、服务熔断、服务降级,微服务监控
|
4月前
|
安全 Linux Nacos
如何使用公网地址远程访问内网Nacos UI界面查看注册服务
如何使用公网地址远程访问内网Nacos UI界面查看注册服务
243 0
|
2月前
|
监控 安全 网络安全
inishConnect(..) failed: Connection refused,服务本地正常服务器网关报400,nacos服务实例不能下线
总之,这种问题需要通过多方面的检查和校验来定位和解决,并可能需要结合实际环境的具体情况来进行相应的调整。在处理分布式系统中这类问题时,耐心和细致的调试是必不可少的。
68 13
|
1月前
|
Kubernetes Nacos 微服务
【技术难题破解】Nacos v2.2.3 + K8s 微服务注册:强制删除 Pod 却不消失?!7步排查法+实战代码,手把手教你解决Nacos Pod僵死问题,让服务瞬间满血复活!
【8月更文挑战第15天】Nacos作为微服务注册与配置中心受到欢迎,但有时会遇到“v2.2.3 k8s 微服务注册nacos强制删除 pod不消失”的问题。本文介绍此现象及其解决方法,帮助开发者确保服务稳定运行。首先需检查Pod状态与事件、配置文件及Nacos配置,确认无误后可调整Pod生命周期管理,并检查Kubernetes版本兼容性。若问题持续,考虑使用Finalizers、审查Nacos日志或借助Kubernetes诊断工具。必要时,可尝试手动强制删除Pod。通过系统排查,通常能有效解决此问题。
42 0
|
1月前
|
Java Nacos 开发工具
【Nacos】心跳断了怎么办?!8步排查法+实战代码,手把手教你解决Nacos客户端不发送心跳检测问题,让服务瞬间恢复活力!
【8月更文挑战第15天】Nacos是一款广受好评的微服务注册与配置中心。然而,“客户端不发送心跳检测”的问题时有发生,可能导致服务实例被视为离线。本文介绍如何排查此类问题:确认Nacos服务器地址配置正确;检查网络连通性;查看客户端日志;确保Nacos SDK版本兼容;调整心跳检测策略;验证服务实例注册状态;必要时重启应用;检查影响行为的环境变量。通过这些步骤,通常可定位并解决问题,保障服务稳定运行。
60 0