nacos配置中心

nacos配置中心

Nacos 支持基于 DNS 和基于 RPC 的服务发现(可以作为springcloud的注册中心)、动态配置服务(可以做配置中心)、动态 DNS 服务。

首先启动nacos服务,进入nacos控制台:

在这里插入图片描述

配置模型

在这里插入图片描述

字段描述
Namespace命名空间,代表不同环境,如测试、开发、生成环境等,互相隔离
Group分组,根据实际需求开分,可以代表某个项目
Datald配置集,每个项目下往往有若干工程,配个配置集代表一个配置文件

在这里插入图片描述

发布配置

在nacos控制台打开菜单 配置管理 — 配置列表,可以点击添加按钮新建配置:

在这里插入图片描述

输入配置信息保存即可。

使用配置

Spring Cloud Nacos Config目前提供了三种配置能力从nacos拿去相关配置:

1.通过内部相关规则(应用名、扩展名)自动生成相关的dataid配置

2.通过自定义扩展dataid配置(ext-config[n]),内部以n的值越大则优先级越高

3.通过自定义共享dataid配置

当三种方式共同使用时,优先级为:内部规则 > 自定义扩展 > 自定义共享

1.导包

<!--引入nacos 配置中心client的依赖-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

2.修改配置文件

在springboot中,因为bootstrap配置文件优先级高于application,所以我们针对配置中心的配置项要放在bootstrap中:

server:
  port: 8081
spring:
  application:
    name: shop-order
  cloud:
    nacos:
      config:
        server-addr: localhost:8848 # 配置中心地址
        file-extension: yaml #dataid的名称就是application.name + file-extension组成的
        #prefix: public_test  #如果不是默认的application.name作为前缀 可以使用这个
        namespace: 4f6b73f2-201b-429e-8b69-0804798b4914 # 指定具体的命名空间
        group: SHOP_GROUP #指定分组
        refresh-enabled: true # 动态刷新

自定义扩展dataid配置(推荐)

当我们一个项目中需要使用多个配置文件,或者单个配置文件想要被多个项目使用的时候,可以使用自定义扩展dataid配置方式:

server:
  port: 8081
spring:
  application:
    name: shop-order
  cloud:
    nacos:
      config:
        server-addr: 1.116.1.2:8848
        ext-config[0]:
          data-id: aaa.yaml #dataid
        ext-config[1]:
          data-id: bbb.yaml #dataid
          group: GLOBALE_GROUP  # 分组 默认DEFAULT_GROUP
        ext-config[2]:
          data-id: ccc.yaml #dataid
          group: GLOBALE_GROUP  # 分组 默认DEFAULT_GROUP
          refresh: true #开启动态刷新

多个配置文件,以ext-config[n]中n的值越大,则优先级越高。
注意:ext-config会提示已过时,但是不影响使用,当然也有替换方案:extension-configs[n] 或者 shared-configs[n]都可以。

自定义共享dataid配置(不推荐)

server:
  port: 8081
spring:
  application:
    name: shop-order
  cloud:
    nacos:
      config:
        server-addr: 1.116.1.2:8848
        shared-dataids: aaa.yaml,bbb,yaml.ccc.yaml #多个dataid逗号隔开
        refreshable-dataids: aaa.yaml #动态刷新的dataid

这种方式也可以加载多个配置文件,但是仅限于默认分组DEFAULT_GROUP下的配置

命名空间

新建命名空间

在这里插入图片描述

命名空间id可以不填,会自动生成,新建完成之后可以进入配置列表进行查看:

在这里插入图片描述

配置信息拷贝到命名空间

方式一:导入导出

当我们需要将配置文件拷贝到其他命名空间时,直接在列表中勾选需要copy的数据,然后点击导出即可:

在这里插入图片描述

然后我们在其他命名空间进行导入即可:

在这里插入图片描述

方式二:克隆

选中需要克隆的数据,点击克隆按钮,选择目标空间即可:

在这里插入图片描述

历史版本

当我们修改过某个配置文件后,可以通过历史版本进行查看之前的版本,并且可以根据需要进行回滚:

在这里插入图片描述

监听查询

nacos提供配置订阅者即监听者查询能力,同时提供客户端当前配置的MD5校验值,以便帮助用户更好的检查配置变更是否推送到Client端:

在这里插入图片描述
注:要实现配置文件动态获取,需使用@RefreshScope注解

粗心大意遇到的问题:

之前代码配置什么的都是对的,但是一直获取不到配置文件,后面发现是在配置中心添加配置文件的时候dataid不正确导致的:
在这里插入图片描述
这里一定要跟上yaml后缀,刚开始就是因为没有写后缀 导致一直获取不到,粗心了

注:项目配置了nacos配置中心之后,也就是spring.cloud.nacos.config配置之后,可以不用再配置注册中心spring.cloud.nacos.discovery默认注册到public命名空间DEFAULT_GROUP分组。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值