Nacos配置中心規範
版本選擇
畢業版本依賴關係(推薦使用)
Namespace
Nacos引入了名稱空間(Namespace)的概念來進行多環境配置和服務的管理及隔離
Namespace也是官方推薦的多環境支援方案。
如何進行配置和服務的管理、隔離(Group)
這裡的group就是Namespace的概念,將服務和配置納入相同的Namespace進行管理
不同Namespace下的服務和配置之間就隔離開來。
建立和獲取NamespaceID
NamespaceId值是在配置檔案配置時必須要填入的配置項,所以需要我們先建立Namespace和Id,步驟如下:
nacos 的控制檯左邊功能欄看到有一個名稱空間的功能,點選就可以看到新建名稱空間 的按鈕。
新建成功後,可以在名稱空間列表中檢視到你所建立的Namespace和他生成的ID值。
Namespace實施方案
- 面向一個租戶
從一個租戶(使用者)的角度來看,如果有多套不同的環境,那麼這個時候可以根據指定的環境來建立不同的 namespce,以此來實現多環境的隔離。
例如,你可能有dev,test和prod三個不同的環境,那麼使用一套 nacos 叢集可以分別建以下三個不同的 namespace。如下圖所示:
通過定義不同的環境,不同環境的專案在不同的Namespace下進行管理,不同環境之間通過Namespace進行隔離。
當多個專案同時使用該Nacos叢集時,還可以通過Group進行Namespace內的細化分組。
這裡以Namespace:dev為例,在Namespace中通過不同Group進行同一環境中不同專案的再分類。
程式碼示例
Namespace下新建配置檔案
這裡假設有 nacos-namespace-one 和 nacos-namespace-two 兩個專案
啟動Nacos-Server,進入Nacos控制檯,切換到Namespace:dev介面,新建配置檔案
- DataId:nacos-namespace-one-dev.yml
- Group:namespace-one
- 配置格式:YAML
- 配置內容:
nacos:
config: 專案:nacos-namespace-one,Namespace:dev
- 繼續新建配置檔案
- DataId:nacos-namespace-two-dev.yml
- Group:namespace-two
- 配置格式:YAML
- 配置內容:
nacos:
config: 專案:nacos-namespace-two,Namespace:dev
注意檢查DataId是否正確、group、配置內容與環境是否匹配
以下NamespaceId均來自建立Namespace時生成的Id,在控制檯名稱空間頁面中可以檢視
建立dev環境配置檔案 bootstrap.yml
server:
port: 9911
spring:
application:
name: nacos-namespace-one
profiles:
active: dev
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
namespace: edbd013b-b178-44f7-8caa-e73071e49c4d
group: namespace-one
config:
server-addr: 127.0.0.1:8848
prefix: ${spring.application.name}
file-extension: yml
namespace: edbd013b-b178-44f7-8caa-e73071e49c4d
group: namespace-one
建立test環境配置檔案 bootstrap.yml
server:
port: 9912
spring:
application:
name: nacos-namespace-one
profiles:
active: test
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
namespace: 0133bd1e-25c3-4985-96ed-a4e34efdea2e
group: namespace-one
config:
server-addr: 127.0.0.1:8848
prefix: ${spring.application.name}
file-extension: yml
namespace: 0133bd1e-25c3-4985-96ed-a4e34efdea2e
group: namespace-one
** nacos-namespace-two** 專案重複以上步驟
嘗試訪問介面來獲取配置資訊,驗證是否可以讀取相應環境配置
訪問127.0.0.1:9911/getValue,返回:專案:nacos-namespace-one,Namespace:dev
訪問127.0.0.1:9912/getValue,返回:專案:nacos-namespace-one,Namespace:test
訪問127.0.0.1:9921/getValue,返回:專案:nacos-namespace-two,Namespace:dev
訪問127.0.0.1:9922/getValue,返回:專案:nacos-namespace-two,Namespace:test
總結:通過Namespace來隔離不同的環境(dev\test),在具體的環境Namespace中通過Group來管理不同的專案
共享配置
extension-configs:
- data-id: shareconfig3.yml
group: share3_group
refresh: true
- data-id: shareconfig3.yml
group: share4_group
refresh: true
shared-configs:
- data-id: shareconfig1.yml
refresh: true
- data-id: shareconfig2.yml
refresh: true
從圖上可以看出 :
spring.cloud.nacos.config.extension-configs[n].data-id 其中 n 的值越大,優先順序越高,因此會走group=share4_group的配置。
spring.cloud.nacos.config.shared-configs[n].data-id預設跟上面一樣的邏輯。
不同方式配置載入優先順序
Spring Cloud Alibaba Nacos Config 目前提供了三種配置能力從 Nacos 拉取相關的配置。
A: 通過 spring.cloud.nacos.config.shared-configs[n].data-id 支援多個共享 Data Id 的配置
B: 通過 spring.cloud.nacos.config.extension-configs[n].data-id 的方式支援多個擴充套件 Data Id 的配置
C: 通過內部相關規則(spring.cloud.nacos.config.prefix、spring.cloud.nacos.config.file-extension、spring.cloud.nacos.config.group)自動生成相關的 Data Id 配置
當三種方式共同使用時,他們的一個優先順序關係是:A < B < C
相關文章
- 配置中心nacos
- Nacos配置中心原理
- SpringCloud Nacos 配置中心SpringGCCloud
- nacos配置中心使用
- nacos作為配置中心
- Docker 搭建 Nacos 配置中心Docker
- Springcloud alibaba nacos配置中心SpringGCCloud
- SpringBoot使用Nacos配置中心Spring Boot
- Nacos配置中心 (介紹與配置)
- springcloud alibaba-nacos配置中心SpringGCCloud
- springboot整合nacos註冊中心和配置中心Spring Boot
- Nacos註冊中心+配置管理
- 配置中心Nacos(服務發現)
- Nacos 配置中心介紹及使用
- nacos入門系列之配置中心
- 整合 nacos註冊中心配置使用
- 【Nacos】微服務配置中心介紹微服務
- Spring Cloud Alibaba(5)---Nacos(配置中心)SpringCloud
- 初探Nacos(四)-- SpringBoot下使用Nacos作為配置中心Spring Boot
- nacos 作為配置中心使用心得--配置使用
- 配置中心的設計-nacos vs apollo
- nacos統一配置中心原始碼解析原始碼
- 使用nacos作為配置中心統一管理配置
- Solon2 專案整合 Nacos 配置中心
- Nacos註冊與配置中心:使用詳講
- SpringBoot專案使用Nacos作為配置中心Spring Boot
- springboot工程dubbo使用nacos作為配置中心Spring Boot
- Java教程:nacos入門系列之配置中心Java
- 阿里巴巴 Nacos 分散式配置中心原理阿里分散式
- Spring Cloud Alibaba:Nacos 作為註冊中心和配置中心使用SpringCloud
- Nacos配置中心叢集原理及原始碼分析原始碼
- Nacos配置中心和服務的註冊發現
- 阿里 Nacos 註冊中心 配置啟動說明阿里
- springcloud/springboot整合NACOS 做註冊和配置中心以及nacos原始碼分析GCCloudSpring Boot原始碼
- Dubbo與SpringCloud Alibaba使用Nacos作為配置中心和註冊中心SpringGCCloud
- SpringBoot使用Nacos作為配置中心服務和服務註冊中心Spring Boot
- 實戰:Nacos配置中心的Pull原理,附原始碼原始碼
- Spring Cloud Alibaba 整合 Nacos 實現服務配置中心SpringCloud