Nacos作为配置中心的使用

序言

Nacos作为配种中心的使用有2个方面

  1. 仅作为动态获取配置文件中的属性

  2. 系统启动文件也放到配置中心,比如像数据库,mvc这样的系统启动配置文件

实时更新属性文件(在SpringBoot中)

如果不需要将系统启动文件也放到nacos中只需要引入 nacos-config-spring-boot-starter

具体参考:Nacos Spring Boot 快速开始

启动文件放入Nacos

这个就需要跟springcloud结合使用了,而且配置文件结构上稍微有点区别.但是我并不想这么用~

具体参考:Nacos Spring Cloud 快速开始

实例

创建配置信息

创建配置信息

 如上所示dataid是我们工程选择要用那个配置文件的主键,只有配置对了dataid 才能获取到对应的配置信息内容cuiyaonan2000@163.com 

在 Nacos Spring Cloud 中,dataId 的完整格式如下:

${prefix}-${spring.profiles.active}.${file-extension}
  • prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
  • spring.profiles.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}-----介个很重要一般我们测试工程没有区分测试,声场,开发的profile
  • file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。

代码中的使用跟我们常用的获取配置信息是一样的.如下1所示,2的注解表示会动态的获取最新的配置信息

Nacos共享配置(shared-configs)和扩展配(extension-config)

  • Nacos在配置路径spring.cloud.nacos.config.extension-config下,允许我们指定⼀个或多个额外配置。
  • Nacos在配置路径spring.cloud.nacos.config.shared-configs下,允许我们指定⼀个或多个共享配置。

上述两类配置都⽀持三个属性:data-idgroup(默认为字符串DEFAULT_GROUP)、refresh(默认为true)。

  • data-id : Data Id
  • group:自定义 Data Id 所在的组,不明确配置的话,默认是 DEFAULT_GROUP。
  • refresh: 控制该 Data Id 在配置变更时,是否支持应用中可动态刷新, 感知到最新的配置值。默认是不支持的。

注意:这里的Data ID后面是加.yaml后缀的,且不需要指定file-extension

 Nacos对配置的默认理念

  • namespace区分环境:开发环境、测试环境、预发布环境、⽣产环境。
  • group区分不同应⽤:同⼀个环境内,不同应⽤的配置,通过group来区分。


共享配置与扩展配置的区别


如果要在特定范围内(⽐如某个应⽤上)覆盖某个共享dataId上的特定属性,请使⽤ extension-config 来覆盖shared-configs

⽐如,其他应⽤的数据库url,都是⼀个固定的url,使⽤shared-configs.dataId = mysql的共享配置。但其中有⼀个应⽤ddd-demo是特例,需要为该应⽤配置扩展属性来覆盖。

spring:
 application:
   name: ddd-demo-service
 cloud:
   nacos:
     config:
       server-addr: nacos-2.nacos-headless.public.svc.cluster.local:8848
       namespace: ygjpro-test2
       group: ddd-demo
       ......
       shared-configs[3]:
         data-id: mysql.yaml
         refresh: true
       ......
       extension-configs[3]:
         data-id: mysql.yaml
         group: ddd-demo
         refresh: true

优先级

主配置 > 扩展配置(extension-configs) > 共享配置(shared-configs)

  • 同为扩展配置,存在如下优先级关系:extension-configs[3] > extension-configs[2] > extension-configs[1] > extension-configs[0

  • 同为共享配置,存在如下优先级关系:shared-configs[3] > shared-configs[2] > shared-configs[1] > shared-configs[0]

配合示例

spring:
  application:
    name: nacos-config-multi
  main:
    allow-bean-definition-overriding: true
  cloud:
    nacos:
      username: ${nacos.username}
      password: ${nacos.password}
      config:
        server-addr: ${nacos.server-addr}
        namespace: ${nacos.namespace}
        # 用于共享的配置文件
        shared-configs:
          - data-id: common-mysql.yaml
            group: SPRING_CLOUD_EXAMPLE_GROUP

          - data-id: common-redis.yaml
            group: SPRING_CLOUD_EXAMPLE_GROUP

          - data-id: common-base.yaml
            group: SPRING_CLOUD_EXAMPLE_GROUP

        # 常规配置文件
        # 优先级大于 shared-configs,在 shared-configs 之后加载
        extension-configs:
          - data-id: nacos-config-advanced.yaml
            group: SPRING_CLOUD_EXAMPLE_GROUP
            refresh: true

          - data-id: nacos-config-base.yaml
            group: SPRING_CLOUD_EXAMPLE_GROUP
            refresh: true

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
使用Nacos作为配置中心的步骤如下: 1. 引入Nacos Config的依赖。在你的项目中的pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> ``` 2. 添加bootstrap配置文件。在你的项目中创建一个名为bootstrap.properties或bootstrap.yaml的配置文件,并在其中配置Nacos Server的地址和其他相关配置,例如: ```properties spring.cloud.nacos.server-addr=192.168.xxx.xxx:8848 spring.cloud.nacos.username=nacos spring.cloud.nacos.password=nacos spring.cloud.nacos.config.namespace=b4d0832b-a7b0-44c2-8ce5-1abe676a4736 ``` 这些配置将用于连接Nacos Server和指定命名空间。 3. 在你的应用程序中使用Nacos配置。你可以在应用程序中使用`@Value`注解或`@ConfigurationProperties`注解来获取Nacos配置的值。例如,在app-user服务中,你可以使用以下方式获取Nacos配置: ```java @Value("${your.config.key}") private String yourConfigValue; ``` 或者 ```java @ConfigurationProperties(prefix = "your.config") public class YourConfigProperties { private String key; // getter and setter } ``` 然后在需要使用配置的地方使用`yourConfigValue`或`yourConfigProperties.getKey()`。 这样,你就可以使用Nacos作为配置中心来管理和获取配置了。 #### 引用[.reference_title] - *1* [使用Nacos作为配置中心](https://blog.csdn.net/weixin_66202611/article/details/128089370)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Nacos配置中心使用](https://blog.csdn.net/qq_42402854/article/details/126375127)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cuiyaonan2000

给包烟抽吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值