Nacos配置中心简单使用

文章详细介绍了Nacos配置中心的核心概念,包括命名空间(Namespace)用于环境隔离,DataID的创建规则,分组(Group)用于区分同一环境内的不同应用配置,以及配置的类型和优先级。通过案例展示了如何在项目中配置Nacos,并利用@RefreshScope实现配置的自动更新。文章还提到了Nacos相对于其他配置中心的优势,如可视化界面、动态更新和权限管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、名词解释

namespace

Namespace 命名空间进行环境隔离也是官方推荐的一种方式。Namespace的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等

创建命名空间
命名空间ID不填写默认是会生成相应的唯一UUID,保留空间默认是不能删除的

在这里插入图片描述
在这里插入图片描述

Data ID

创建规则:

 ${prefix} - ${spring.profiles.active} . ${file-extension}1)prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。

(2)spring.profiles.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档

(3)file-extension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension来配置。目前只支持 properties 和 yaml 类型

group分组

同⼀个环境内,不同应⽤的配置,通过group来区分 默认是DEFAULT_GROUP

配置类型

  • 主配置(dataID区分)
  • 扩展配置 extension-configs
  • 共享配置 shared-configs

配置优先级及配置的覆盖

不同类型的优先级:主配置 > 扩展配置(extension-configs) > 共享配置(shared-configs)

扩展和共享配置为数组格式 数组下标越大优先级越高 会覆盖排在之前的同名配置项
覆盖某个dataId上的特定属性,请使⽤ extension-config

extension-configs[3] > extension-configs[2] > extension-configs[1] > extension-configs[0]

shared-configs[3] > shared-configs[2] > shared-configs[1] > shared-configs[0]

二、案例demo

1.在项目中新建bootstrap.yml
spring:
  application:
      name: order
  profiles:
      active: prod
  cloud:
      nacos:
          discovery:
              password: nacos
              username: nacos
          config:
              server-addr: 192.168.32.128:8848
              file-extension: yaml
              namespace: prod
              group: DEFAULT_GROUP

2.在nacos 中不同namespace中新建配置文件
在这里插入图片描述

在这里插入图片描述

结果:
在这里插入图片描述
在这里插入图片描述

三、扩展&&共享配置

注意:dataId 要和spring.application.name对应上

bootstrap.yml配置

  • refresh: true 自动更新
spring:
  application:
      name: order
  profiles:
      active: dev
  cloud:
      nacos:
          discovery:
              password: nacos
              username: nacos
          config:
              server-addr: 192.168.32.128:8848
              file-extension: yaml
              namespace: dev
              group: DEFAULT_GROUP
              #扩展配置
              extension-configs[0]:
                  data-id: common-redis.yaml
                  refresh: true
              #共享配置
              shared-configs[0]:
                  data-id: mysql.yaml
                  group: MYSQL_GROUP
                  refresh: true

结果:
在这里插入图片描述
在这里插入图片描述

四、自动更新


@RestController
@RequestMapping("/config")
@RefreshScope //开启配置自动更新
public class ConfigController {

    @Value("${name}")
    private String name;

    @Value("${url}")
    private String redisUrl;

    @Value("${mysql}")
    private String mysql;


    @GetMapping("/getConfig")
    public String test() {
        return "当前环境:" + name + " ****** 当前redisUrl:" + redisUrl + " ***** 当前mysql:" + mysql;
    }
}

五、与其他配置中心优势

  • 可视化界面
  • 秒级动态更新配置
  • 权限管理等
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值