【Nacos】03-Nacos配置中心与SpringCloud

Nacos配置中心与SpringCloud

Nacos的配置中心与SpringCloud的应用

简单应用

  1. 依赖

    1
    2
    3
    4
    5
    <!--配置中心-->
    <dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
  2. 配置文件

    1
    2
    3
    4
    5
    6
    7
    8
    spring:
    application:
    name: nacos-config
    cloud:
    nacos:
    config:
    server-addr: 127.0.0.1:8848
    file-extension: yml # 配置中心使用yml格式。若不添加此配置,默认使用properties
    1. spring.application.name:应用名称,配置中心需要根据该名称生成与之相对应的dataId。
    2. spring.cloud.nacos.config.server-addr:配置中心的地址。
    3. 注意:
      • springboot项目的配置文件有四个,且根据优先级排名为:bootstrap.properties、bootstrap.yml、application.properties、application.yml。
      • 上面的配置文件的代码可以写在bootstrap中。
  3. 使用配置中心

    1. 查看日志

      img-01

      该配置中心的dataId为nacos-config

    2. 打开nacos配置中心,点击+

      img-02

    3. 根据所配置文件中file-extension的配置以及选择的配置格式,输入Data ID为nacos-config.ymlnacos-config.application

      img-03

    4. 使用配置中心

      • 配置文件添加

        1
        2
        3
        4
        user:
        name: 张三
        nickname: 法外狂徒
        age: 22
      • 添加控制层

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        @RefreshScope //刷新配置
        @RestController
        public class TestController {
        @Value("${user.name}")
        private String name;
        @Value("${user.nickname}")
        private String nickname;
        @Value("${user.age}")
        private Integer age;

        @GetMapping("/user")
        public R user() {
        Map<String, Object> map = CollUtil.newHashMap();
        map.put("nickname", nickname);
        map.put("name", name);
        map.put("age", age);
        return R.ok(map);
        }

        }
      • 启动项目、调用接口localhost:8080/user

        img-04

      • 配置中心修改配置

        img-05

        查看控制台:

        img-06

      • 再次调接口

        img-07

      • 此时,项目中配置文件user的值更改为配置中心的值。

进阶应用

nacos 作为配置中心的更多功能:

  1. 命名空间:配置隔离

    默认:public(保留空间);默认新增的所有配置都在该命名空间。

  2. 配置集:所有的配置的集合。

  3. 配置集ID:类似文件名。

  4. 配置分组:

    默认所有的配置分组为DEFAULT_GROUP

下面的内容为命名空间、配置分组的使用。

命名空间

命名空间可以实现环境隔离作用。

  1. 创建命名空间

    img-08

  2. 使用自己创建的命名空间(将数据源配置卸载配置中心中)

    配置中心其他信息无需更改

    img-10

  3. springboot项目指定命名空间

    1
    2
    3
    4
    5
    6
    7
    8
    9
    spring:
    application:
    name: nacos-config
    cloud:
    nacos:
    config:
    server-addr: 127.0.0.1:8848
    file-extension: yml
    namespace: d15d4d30-aa9d-489c-a79e-8683ba08800d # 该配置指定命名空间,值为命名空间ID
  4. 启动并调用接口localhost:8080/user,配置成功

    img-11

配置分组

配置分组比较简单

  1. 配置中心中创建分组名为lisi的配置文件

    img-12

  2. springboot项目指定分组

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    spring:
    application:
    name: nacos-config
    cloud:
    nacos:
    config:
    server-addr: 127.0.0.1:8848
    file-extension: yml
    namespace: d15d4d30-aa9d-489c-a79e-8683ba08800d # 该配置指定命名空间,值为命名空间ID
    group: lisi # 值为配置中心的分组名
  3. 启动并调用接口localhost:8080/user,配置成功

    img-13

    使用多个配置中心的配置文件

    在实际的微服务项目开发中,很多项目有一些相同的配置,我们可以将这些配置放在同一配置文件中,多个项目共同使用。一个项目也需要引入多个配置文件。

    且要注意配置的优先级!!

    1. 在配置中心中添加多个配置文件:datasource.yml(配置数据源), mybatis.yml(配置mybatis), user.yml(配置user信息)

      数据源:

      image-20210613164818706

      mybatis:

      image-20210613164824619

      user:

      img-14

    2. springboot配置文件

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      spring:
      application:
      name: nacos-config
      cloud:
      nacos:
      discovery:
      server-addr: localhost:8848
      config:
      server-addr: 127.0.0.1:8848
      file-extension: yml
      namespace: d15d4d30-aa9d-489c-a79e-8683ba08800d
      extension-configs:
      -
      dataId: mybatis.yml
      namespace: d15d4d30-aa9d-489c-a79e-8683ba08800d
      group: dev
      refresh: true
      -
      dataId: datasource.yml
      namespace: d15d4d30-aa9d-489c-a79e-8683ba08800d
      group: dev
      refresh: true
      -
      dataId: nacos-user.yml
      namespace: d15d4d30-aa9d-489c-a79e-8683ba08800d
      group: dev
      refresh: true
    3. 启动并调用接口localhost:8080/user,配置成功

      img-15

    4. 注意

      上面添加了配置中心的三个配置文件,但是其实是四个配置文件:1. mybatis.yml; 2. datasource.yml; 3. nacos-user.yml; 4. nocos-config.yml

      且优先级,nacos-config.yml最高!!!

-------------本文结束感谢您的阅读-------------