美文网首页
记录配置nacos-config(随记)

记录配置nacos-config(随记)

作者: 简楼 | 来源:发表于2021-04-25 16:29 被阅读0次

前言

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

前提

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

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


image.png

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

构建项目依赖管理

<properties>
    <maven.compiler.source>8</maven.compiler.source>
    <maven.compiler.target>8</maven.compiler.target>
    <maven.compiler.plugin.version>3.8.1</maven.compiler.plugin.version>
    <hutool.version>5.6.2</hutool.version>
    <alibaba.version>2.2.5.RELEASE</alibaba.version>
    <spring.boot.vsersion>2.3.2.RELEASE</spring.boot.vsersion>
    <spring.cloud.version>Hoxton.SR8</spring.cloud.version>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>${spring.boot.vsersion}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-dependencies</artifactId>
        <version>${spring.cloud.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-alibaba-dependencies</artifactId>
        <version>${alibaba.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>cn.hutool</groupId>
        <artifactId>hutool-all</artifactId>
        <version>${hutool.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

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

构建子模块

项目关系

image.png

pom.xml 依赖引入

  <dependencies>
    <dependency>
      <groupId>com.alibaba.cloud</groupId>
      <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
    </dependency>
  </dependencies>

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:

image.png

3. 修改配置并重新查询

修改
image.png
再次查询
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

相关文章

  • 记录配置nacos-config(随记)

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

  • 简单微服务项目搭建

    本示例服务注册中心使用nacos-discovery,配置中心使用nacos-config,网关使用Spring ...

  • 配置管理Nacos-config

    Nacos 可以实现分布式环境下的配置管理。 前提条件 需要先下载 Nacos 并启动 Nacos server。...

  • Nacos配置中心

    一、使用步骤 1.在要注册到Nacos配置中的微服务中添加nacos-config依赖 2.在微服务的 /src/...

  • 学习SpringCloud-config踏平的坑

    菜鸡黑仔,记录学习SpringCloud随记 2019-04-03 SpringCloud-config: ...

  • 随记录

    许久没有一口气看完一本小说,初次看到它,是发现班级一个女生在课间看小说,以我的职责嗅觉,这样的小说是不能在班级...

  • 随记录

    不是我问你答 更不是我问了 你依旧未答 我希望是你和我说 你的一切 想必 当你什么都愿意和我讲 就是我最有安全感的...

  • 随记录

    今天在朋友的推荐下 下了简书 不得不说 我们俩真是有共鸣 她今天下了简书只是说想写东西了 巧的是 我今天感触很深就...

  • 随记录

    2021-04-14 注解名字作用@RequestMapping处理浏览器通用请求?@ResponseBody将返...

  • 散·杂·笔

    本人的记录分为散记、杂记、笔记。 散记,不分类,随心随记。杂记,分类,记录若干范畴的心得,比如物理。笔记,分类,记...

网友评论

      本文标题:记录配置nacos-config(随记)

      本文链接:https://www.haomeiwen.com/subject/ewidrltx.html