【转】 SpringCloudAlibaba之Nacos Config配置中心实战

【转】 SpringCloudAlibaba之Nacos Config配置中心实战

SpringCloudAlibaba微服务实战教程系列

-------------------------------目录-----------------------------------

一、无脑应用

  1、添加nacos配置

  2、引入pom文件

  3、配置config服务地址

  4、注解使用

二、高级应用

  1、nacos数据模型

  2、区分环境应用

  3、应用引入多个配置文件 

---------------------------------------------------------------------

一、无脑应用

1、在nacos管理台进行添加配置(主要看图和第二个框框)

  需要注意的是DataID属性的值为配置文件名格式为:${prefix}-${spring.profile.active}.${file-extension}

  配置方式说明:

    prefix 默认为 spring.application.name的值,也可以通过配置项spring.cloud.nacos.config.prefix 来配置。
    spring.profile.active 即为当前环境对应的 profifile。 注意:当 spring.profile.active为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension} 
    file-extension为配置内容的数据格式,可以通过配置项spring.cloud.nacos.config.file-extension来配置。⽬前只⽀持 properties 和 yaml类型。

  哈哈~~,你如果看不懂我来简单说

prefix就是配置的服务名称,我这里服务名叫nacos-provider
spring.profile.active就是启动时候指定的启动配置文件后缀(比如dev、test、prod),我这里启动的时候没有指定
file-extension就是文件的后缀,比如yml(nacos只能选择yaml)、properties,我这里使用的yaml

2、引入pom文件

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

3、配置项目文件

  在resources中创建bootstrap.yml文件,配置配置中心信息

spring:
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yaml
        namespace: public

4、使用配置变量

  在类上面添加原生刷新注解@RefreshScope,在属性引用上添加@Value注解,这样变量就会实时进行刷新了,方便吧~

 

二、高级应用

  1、nacos数据模型

   首先Namespace命名空间、Group分组、集群这些概念都是为了进⾏归类管理,把服务和配置⽂件进⾏归类,进而实现一些功能:⽐如数据隔离、服务隔离,对于服务来说,不同命名空间中的服务不能够互相访问调⽤。

  Namespace:命名空间,对不同的环境进⾏隔离,⽐如隔离开发环境、测试环境和⽣产环境
  Group:分组,将若⼲个服务或者若⼲个配置集归为⼀组,通常习惯⼀个系统归为⼀个组
  Service:某⼀个服务,⽐如java某个应用实例
  DataId:配置集或者可以认为是⼀个配置⽂件

  详情请参考官网:Nacos官网

  2、区分环境应用

    在nacos管理台上添加命名空间,并且在配置文件中指定namespace属性,进行配置或者服务的完全隔离

  3、应用引入多个配置文件

  主要是 ext-config 属性:

  a、指定拓展文件data-id,
   b、需要设置刷新,默认不会动态刷新
   c、文件优先级,默认配置高于拓展配置,拓展配置数组下标越大优先级越高
spring:
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yaml
        namespace: public
        #以下为加载多个文件数组信息 直接指定dataid(对于扩展的dataId,[n] n越⼤优先级越⾼),也可以添加 group属性
        ext-config[0]:
          data-id: xxx.yaml
          #默认数据不会主动刷新,添加改属性会动态刷新
          refresh: true
        ext-config[1]:
          data-id: xxx.yaml
          #默认数据不会主动刷新,添加改属性会动态刷新
          refresh: true

注意nacos客户端依赖与nacos服务端版本不一致导致的md5数据不一样,不停的刷新日志情况--->>解决方案

或者 com.alibaba.nacos.client: error 提高日志级别

原文地址:https://www.cnblogs.com/Javastudy-note/p/13818383.html