【轉】 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 提高日志級別

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM