zoukankan      html  css  js  c++  java
  • 工作中的点点滴滴Nacos配置中心的无法获取到数据

    背景:

      新的一个项目使用Nacos做为数据配置中心,在开发过程中通常会将一些需要变更的参数、变量等从代码中分离出来独立管理,以独立的配置文件的形式存在。目的是让静态的系统工件或者交付物(如 WAR,JAR 包等)更好地和实际的物理运行环境进行适配。配置管理一般包含在系统部署的过程中,由系统管理员或者运维人员完成这个步骤。配置变更是调整系统运行时的行为的有效手段之一。Nacos可以作为配置中心,存储和管理配置信息。首先相比较apollo和zk,他更加的轻量级,并且也同时支持集群模式来保证高可用。

      项目使用的是Spring Boot框架,版本是2.4.10的。

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.10</version>
        <type>pom</type>
    </dependency>

      然后Nacos的依赖使用的是boot,这里需要注意区分一下boot和cloud的两个jar包。因为我们的项目中是没有明显以来spring cloud的。所以为了避免boot-starter和cloud同时加载一些bean导致乱七八糟的问题,我们这里就采用的是com.alibaba.boot,版本是0.2.10的。

    <dependency>
        <groupId>com.alibaba.boot</groupId>
        <artifactId>nacos-config-spring-boot-starter</artifactId>
        <version>0.2.10</version>
    </dependency>

      然后yml配置如下

    nacos:
      config:
        server-addr: 127:0:0:1:8848

     启动程序

    @SpringBootApplication
    @NacosPropertySource(dataId = "example", autoRefreshed = true)
    public class NacosTestApplication {
        public static void main(String[] args) {
            SpringApplication.run(NacosTestApplication.class, args);
        }
    }

    获取值

    @Controller
    @RequestMapping("config")
    public class ConfigController {
        @NacosValue(value = "${username:false}", autoRefreshed = true)
        private String username;
    
        @GetMapping(value = "/get")
        @ResponseBody
        public String get() {
            return username;
        }
    }

      项目启动失败

     在spring boot 2.4之后删掉了ConfigurationBeanFactoryMetadata。在项目启动的时候创建Bean失败。所以这里我就直接把spring-boot的版本降低到了2.3.9。然后再次启动就成功了。

      启动成功之后,但是获取配置总是返回的是Null,这个其实也是boot的版本和Nacos的版本不一致导致的,所以我就一路把Nacos的版本从0.2.10降低到0.2.1 的时候可以启动成功,并且能够成功的获取到数据了。

  • 相关阅读:
    java_oop_方法2
    POJ 3276 Face The Right Way(反转)
    POJ 3276 Face The Right Way(反转)
    POJ 2566 Bound Found(尺取法,前缀和)
    POJ 2566 Bound Found(尺取法,前缀和)
    POJ 3320 Jessica's Reading Problem(尺取法)
    POJ 3320 Jessica's Reading Problem(尺取法)
    POJ 3061 Subsequence(尺取法)
    POJ 3061 Subsequence(尺取法)
    HDU 1222 Wolf and Rabbit(欧几里得)
  • 原文地址:https://www.cnblogs.com/yangkangIT/p/15542136.html
Copyright © 2011-2022 走看看