nacos2.3.1配置中心

nacos2.3.1配置中心



前言

接着上一个博客SpringBoot整合Nacos2.3.1讲一下nacos作为配置中心,2020年的时候学习过nacos,还以为很快就能上手呢,没想到磨磨蹭蹭还是折腾了好大一会,接下来这篇文章可能会有几个坑,但是内容还是完整的。希望有解决办法的同学和我讨论讨论。


提示:以下是本篇文章正文内容,下面案例可供参考

一、基础概念

首先说一下基础概念(欢迎指出不同的意见),虽然有点啰嗦,但是还是很有必要的

1、命名空间

命名空间(Namespace)是Nacos中的一个重要概念,它可以帮助我们对配置和服务进行分类管理和隔离。每个命名空间都是一个独立的环境,可以有自己的配置和服务。通过使用命名空间,我们可以在同一个Nacos实例上创建多个独立的环境,方便地进行配置和服务的管理。(一个命名空间对应一个服务)

2、分组(Group)

在实际开发中,我们通常会有多个环境,比如开发环境、测试环境和生产环境等。通过使用命名空间,我们可以将不同环境的配置和服务进行隔离,避免相互干扰。(一个分组对应一个环境)

总结:Nacos 中的服务是由三元组唯一确定的:namespace、group 与服务名称 service。 namespace 与 group 的作用是相同的,用于划分不同的区域范围,隔离服务。不同的是, namespace 的范围更大,不同的 namespace 中可以包含相同的 group。不同的 group 中可以 包含相同的 service。namespace 的默认值为 public,group 的默认值为 DEFAULT_GROUP。

在这里插入图片描述

3、权限控制

权限控制在实际应用中,我们可能需要对不同的用户或者角色进行权限控制。通过使用命名空间,我们可以为不同的用户或者角色分配不同的命名空间,从而实现权限控制。

点击权限管理

在这里插入图片描述

添加权限

添加自己需要配置的权限,绑定用户即可

在这里插入图片描述

4、extension-configs:

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

5、shared-configs:

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

6、加载顺序

当前服务配置、共享配置与扩展配置的加载顺序为:共享配置,扩展配置,当前服务配置。若在三个配置中具有相同属性设置,但它们具有不同的值,那么,后加载的会将先加载的给覆盖。即这三类配置的优先级由低到高是:共享配置,扩展配置,当前服务配置

二、引入依赖

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

三、application.yml

首先我会创建一个search类型的命名空间,下面创建三个配置文件,分别对应两个分组,testconfig.yml配置文件用来测试动态刷新的,一会会截图演示一下

在这里插入图片描述

#新版之后没有bootstrap.yml
spring:
  profiles:
    active: ${active} #区分环境  <如果这里看不懂可以留言>
  config:
    import:
      #      - optional:nacos:${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
      - nacos:dcxh-search-${active}.yml?refreshEnabled=true&group=${active}
      - nacos:elasticsearch-extension.yml?refreshEnabled=true&group=extension
  application:
    name: dcxh-search
  cloud:
    nacos:
      config: #配置中心
        server-addr: 127.0.0.1:8848
        file-extension: yml
        username: nacos
        password: nacos
        #NacosConfigPropertiesextensionConfigs
        #        ext-config:
        namespace: a022a0f5-656e-4790
#        group: ${active}
        extension-configs:
          - data-id: dcxh-search-dev
            group: dev
            refresh: true
        shared-configs:
          - data-id: elasticsearch-extension
            group: extension
            refresh: true



//在springboot >= 2.4.0版本,已经不使用bootstrap.yml作为启动配置文件了,所以在在application.yml中配置nacos的时候必须引入 config.import参数
config:
    import:
      - nacos:dcxh-search-dev.yml?refreshEnabled=true&group=dev //dcxh-search-dev.yml是nacos中的配置文件

如果config.import不设置会报以下错误错:Add a spring.config.import=nacos: property to your configuration.
在这里插入图片描述

这里我遇到了一个很奇怪的问题,搞了半天无法决绝

在这里插入图片描述

在application.yml中起到决定性作用的是- nacos:elasticsearch-extension.yml?refreshEnabled=true&group=extension,这个参数,比如去掉group参数之后下面 extension-configs:中的分组参数就补气作用了,因为还没来得及看源码,所以目前还不知道怎么回事,如果有解决方法麻烦请留言。

四、bootstrap.yml

前面说了springboot >= 2.4.0版本,已经不使用bootstrap.yml作为启动配置文件了,所以如果还想使用bootstrap.yml,需要引入依赖:

 		<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>

之后可以配置bootstrap.yml,我的配置如下

#新版之后没有bootstrap.yml
spring:
  profiles:
    active: ${active} #区分环境
  application:
    name: dcxh-search
  cloud:
    nacos:
      config: #配置中心
        server-addr: 127.0.0.1:8848
        file-extension: yml
        username: nacos
        password: nacos
        #NacosConfigPropertiesextensionConfigs
        #        ext-config:
        namespace: a022a0f5-656e-4790
        #        group: ${active}
        extension-configs:
          - data-id: dcxh-search-dev.yml
            group: dev
            refresh: true
        shared-configs:
          - data-id: elasticsearch-extension.yml
            group: extension
            refresh: true

正常启动之后,会发现加载的配置信息如下
在这里插入图片描述

五、动态刷新

主要使用@RefreshScope(推荐)来实现动态刷新功能,具体配置如下:

配置文件中编写一个测试配置文件

在这里插入图片描述

bootstrap.yml中添加一下内容:

        extension-configs:
          - data-id: testconfig.yml
            group: dev
            refresh: true

配置文件中的内容如下

在这里插入图片描述

编写测试类如下:

在这里插入图片描述

测试结果:

在这里插入图片描述

修改配置文件中信息,之后请求:

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

总结

以上就是目前摸索出来的使用方法,如有错误之处请批评指正。

Nacos 2.3.1 是阿里巴巴开源的分布式配置中心,提供了集中化、统一化的配置管理服务。Nacos 的配置文件主要是用于配置服务器的运行参数和客户端连接信息。在 2.3.1 版本中,主要的配置文件包括 `application.properties` 或者 `application.yml`(YAML 格式),以及针对不同模块的配置。 1. `application.properties` 或 `application.yml`: 这是基础配置文件,通常包含以下内容: - **Server** 部分:服务端的基本设置,如服务器地址、端口、日志级别、数据库连接等。 - **Security** 部分:如果启用安全,包括用户名、密码、加密算法等。 - **Discovery** 部分:如果是注册到其他服务发现组件(如Eureka)的配置,可能包含相关地址和注册信息。 - **Cluster** 部分:集群配置,如果支持分布式部署,会包含主备节点配置。 - **Nacos Server** 部分:对Nacos内部服务器的具体设置,如缓存大小、超时时间等。 2. `data.properties`: 这个文件用于存储配置数据,客户端可以通过 API 存取或更新这些配置。 3. **其他模块配置**: Nacos 包含多个模块,比如命名服务(Name-Service)、配置服务(Config Service)、健康检查(Health Check)等,每个模块可能有自己的配置文件,比如 `naming-server.properties`、`config-server.properties` 等,用于调整该模块的特定功能。 如果你需要详细了解某个特定配置项,记得提供具体配置项名称,这样我可以帮你解读其含义。下面是几个相关问题供你参考:
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值