记录配置nacos-config(随记)

时间:2021-6-4 作者:qvyue

前言

在了解网关后,知道网关需要注册中心来监控,以及需要统一的配置文件中心,进行配置文件管理;

前提

在搭建配置中心时,需要先下载并运行Nacos;

搭建时请严格按照 Nacos 依赖关系构建项目,不然会有意想不到的收获,甚至自闭一段时间;
下面时我拷贝的一份依赖关系图:

记录配置nacos-config(随记)
image.png

版本说明 · alibaba/spring-cloud-alibaba Wiki

构建项目依赖管理

883.8.15.6.22.2.5.RELEASE2.3.2.RELEASEHoxton.SR8org.springframework.bootspring-boot-starter-parent${spring.boot.vsersion}pomimportorg.springframework.cloudspring-cloud-dependencies${spring.cloud.version}pomimportcom.alibaba.cloudspring-cloud-alibaba-dependencies${alibaba.version}pomimportcn.hutoolhutool-all${hutool.version}

以上是搭建nacos-config配置中心需要管理的依赖;

构建子模块

项目关系

记录配置nacos-config(随记)
image.png

pom.xml 依赖引入

  com.alibaba.cloudspring-cloud-starter-alibaba-nacos-configorg.springframework.bootspring-boot-starter-weborg.projectlomboklombok

resource配置

在 resource 目录下,新建 bootstrap.yml 文件,并写入配置:

spring:
  cloud:
    nacos:
      config:
        file-extension: yaml
        server-addr: 127.0.0.1:8848
  application:
    name: nacos-config

启动类

@SpringBootApplication
public class NacosConfigApplication {

  public static void main(String[] args) {
    ConfigurableApplicationContext applicationContext = SpringApplication.run(NacosConfigApplication.class, args);
    String useLocalCache= applicationContext.getEnvironment().getProperty("useLocalCache");
    System.err.println("useLocalCache :" + useLocalCache+ "

此处目的是,打印出 useLocalCache 配置是否从 nacos服务中的配置管理里面动态获取到了。

构建controller 测试动态配置

@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {

  @Value("${useLocalCache:false}")
  private boolean useLocalCache;

  @RequestMapping("/get")
  public boolean get() {
    return useLocalCache;
  }
}

@RefreshScope 用来动态刷新配置的。

测试步骤

1. 写一个 yaml 配置到 nacos 服务里面

curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=example.properties&group=DEFAULT_GROUP&content=useLocalCache: true"

2. 启动 nacos-config 项目

GET 请求 http://localhost:8080/config/get:

记录配置nacos-config(随记)
image.png

3. 修改配置并重新查询

修改
记录配置nacos-config(随记)
image.png
再次查询
记录配置nacos-config(随记)
image.png

总结

至此,nacos的配置管理就完成的;

说一下这里碰到的几个坑:

  1. 版本依赖问题:

一开始我选择的是Spring Cloud 2020.0、Spring Cloud Alibaba 2021.1、Spring Boot 2.4.2.RELEASE,然后发现 Spring Boot 只有 2.4.2 版本,没有后缀 RELEASE,然后启动项目后,发现一直获取不到nacos上设置的值,网上百度了一堆,自己也都尝试了下,发现都不行,最后就决定给版本降级,事情就解决了,如果有知道原因的小伙伴,可以私聊告诉我,感谢!

  1. 容易混淆的文件扩展:

bootstrap.yml的文件后缀,和 bootstrap.yml 里面配置的 file-extension: yaml,是不同的东西;
file-extension: yaml 指的是基于 dataid 为 yaml 的文件扩展名配置方式,这个是nacos服务里面的配置,是我们动态刷新获取的配置的格式,不是我们构建的项目里的bootstrap.yml

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。