Nacos配置的多環境管理


實現多環境管理有下面幾種方式

1.使用Data IDprofiles實現

在 Nacos Config Starter 中,dataId 的拼接格式為

${prefix} - ${spring.profiles.active} . ${file-extension}  

prefix 默認為 spring.application.name 的值,可以通過配置項 spring.cloud.nacos.config.prefix 來配置

spring.profiles.active 為當前環境對應的 profile

  當 spring.profiles.active 為空,dataId 的拼接格式變成 ${prefix} . ${file-extension}

  當 spring.profiles.active 不為空,沒找到 ${prefix} - ${spring.profiles.active} . ${file-extension},會找 ${prefix} . ${file-extension}

file-extension 為配置內容的數據格式,可以通過配置項 spring.cloud.nacos.config.file-extension 來配置

eg:

應用端配置

server.port=8015
spring.application.name=service-comsumer
spring.profiles.active=dev

management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always

spring.cloud.nacos.discovery.enabled=true
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
spring.cloud.nacos.discovery.service=${spring.application.name}

spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.file-extension=properties

nacos

service-comsumer-dev.properties

2.使用Group實現

group 默認為 DEFAULT_GROUP,可以通過 spring.cloud.nacos.config.group 配置

在Nacos中是用來對Data ID做集合管理的

把一個環境的配置視為一個集合,那么使用不同的集合就可以實現不同環境的配置管理

eg:

應用端配置

server.port=8015
spring.application.name=service-comsumer
spring.profiles.active=dev

management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always

spring.cloud.nacos.discovery.enabled=true
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
spring.cloud.nacos.discovery.service=${spring.application.name}

spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.file-extension=properties
spring.cloud.nacos.config.group=DEV_GROUP

nacos

service-comsumer.properties

3.使用Namespace實現

 用於進行租戶粒度的配置隔離。

不同的命名空間下,可以存在相同的GroupData ID的配置。

可通過spring.cloud.nacos.config.namespace配置

eg:

添加命名空間

應用端配置

server.port=8015
spring.application.name=service-comsumer
spring.profiles.active=dev
namespace = c47dab76-4a76-4a3f-95bf-3b06caa05b41

management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always

spring.cloud.nacos.discovery.enabled=true
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
spring.cloud.nacos.discovery.service=${spring.application.name}
spring.cloud.nacos.discovery.namespace=${namespace}

spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.file-extension=properties
spring.cloud.nacos.config.namespace=${namespace}

應用啟動后

 注:

  沒設置spring.cloud.nacos.discovery.namespace,服務會在public下

命名空間dev下的配置

 

詳情

注:

  namespace的配置不是使用名稱,而是使用Namespace的ID

補充:

  對指定環境的配置,在發布腳本的啟動命令中,通過-D傳入系統參數的方式來動態指定,會更加靈活

  eg:

    -Dspring.profiles.active=dev

 


免責聲明!

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



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