Nacos Namespace/Group/DataID三者關(guān)系解讀
命名空間(Namespace)
用于進(jìn)行租戶粒度的配置隔離。不同的命名空間下,可以存在相同的 Group 或 Data ID 的配置。
Namespace 的常用場景之一是不同環(huán)境的配置的區(qū)分隔離,例如開發(fā)測試環(huán)境和生產(chǎn)環(huán)境的資源(如配置、服務(wù))隔離等。
配置分組(Group)
Nacos 中的一組配置集,是組織配置的維度之一。
通過一個有意義的字符串(如 Buy 或 Trade )對配置集進(jìn)行分組,從而區(qū)分 Data ID 相同的配置集。
當(dāng)您在 Nacos 上創(chuàng)建一個配置時,如果未填寫配置分組的名稱,則配置分組的名稱默認(rèn)采用 DEFAULT_GROUP 。
配置分組的常見場景:不同的應(yīng)用或組件使用了相同的配置類型,如 database_url 配置和 MQ_topic 配置。
配置集 ID(Data ID)
Nacos 中的某個配置集的 ID。配置集 ID 是組織劃分配置的維度之一。
Data ID 通常用于組織劃分系統(tǒng)的配置集。一個系統(tǒng)或者應(yīng)用可以包含多個配置集,每個配置集都可以被一個有意義的名稱標(biāo)識。
Data ID 通常采用類 Java 包(如 com.taobao.tc.refund.log.level)的命名規(guī)則保證全局唯一性。此命名規(guī)則非強(qiáng)制。
配置集:一組相關(guān)或者不相關(guān)的配置項的集合稱為配置集。
在系統(tǒng)中,一個配置文件通常就是一個配置集,包含了系統(tǒng)各個方面的配置。
例如,一個配置集可能包含了數(shù)據(jù)源、線程池、日志級別等配置項。
三者關(guān)系
這三者的關(guān)系類似于Java里面的package名和類名,最外層的Namespace是可以用于區(qū)分部署環(huán)境的,Group和DataID邏輯上區(qū)分兩個目標(biāo)對象。

默認(rèn)情況
Namespace=public,Group=DEFAULT_GROUP,默認(rèn)Cluster是DEFAULT
具體情況
Nacos默認(rèn)的命名空間是public,我們就可以利用Namespace來實現(xiàn)隔離,比如我們現(xiàn)在有三個環(huán)境:開發(fā)、測試、生產(chǎn)環(huán)境,我們就可以創(chuàng)建三個Namespace,不同的N amespace之間是隔離的。
Group本身就是分組的意思,它可以把不同的微服務(wù)劃分到同一個分組里面去。
剩下的就是具體微服務(wù),一個Service可以包含多個Cluster,Nacos默認(rèn)Cluster是DEFAULT,Cluster是對指定微服務(wù)的一個虛擬劃分。
比如說,將一個Service部署在北京和和杭州的機(jī)房中,北京機(jī)房的Service就可以起名為(BJ),杭州機(jī)房中的Service就可以起名為(HZ),這樣就可以盡量讓同一個機(jī)房的微服務(wù)互相調(diào)用,提升性能。
切換不同環(huán)境
1. DataID方案
指定spring.profile.active和配置文件的DataID來使不同環(huán)境下讀取不同的配置,配置規(guī)則:默認(rèn)空間+新建dev和test兩個DataId:
- 新建dev配置DataID(已經(jīng)創(chuàng)建完成)
- 新建test配置DataID
2. Group方案
新建配置的時候填入分組DEV_GROUP

同樣的方式在建立一個同名的dataId分組為TEST_GROUP

這里相當(dāng)于相同的目錄下不同的文件
- 項目配置bootstrap.properties
spring.application.name=nacos-config-client spring.cloud.nacos.discovery.server-addr=192.168.43.11:8848 # Nacos作為配置中心地址 spring.cloud.nacos.config.server-addr=192.168.43.11:8848 # 指定yaml格式的配置 spring.cloud.nacos.config.file-extension=properties # 配置要使用的nacos配置中心分組 spring.cloud.nacos.config.group=TEST_GROUP
- application.properties
# 激活使用profile spring.profiles.active=info
- application-info.properties
# nacos配置 server.port=3377
測試效果

3. 命名空間方案
新建命名空間

切換命名空間

- 修改配置文件bootstrap.properties實現(xiàn)切換
# 指定命名空間 dev #spring.cloud.nacos.config.namespace=401827ae-19b9-4fb4-a1fc-e55d57e6f6fe # 指定命名空間 test spring.cloud.nacos.config.namespace=5e79a451-9283-47cb-ac86-3bae58352240
添加分組和dataId(可以從default空間克隆)
參考上面的方案

測試結(jié)果

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
淺析Java中SimpleDateFormat為什么是線程不安全的
SimpleDateFormat是Java中用于日期時間格式化的一個類,它提供了對日期的解析和格式化能力,本文主要來和大家一起探討一下SimpleDateFormat為什么是線程不安全的,感興趣的可以了解下2024-02-02
Java實現(xiàn)貪吃蛇大作戰(zhàn)小游戲的示例代碼
本文主要介紹了Java實現(xiàn)貪吃蛇大作戰(zhàn)小游戲的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
基于SpringBoot+Redis實現(xiàn)一個完整的發(fā)布訂閱系統(tǒng)
在分布式系統(tǒng)中,消息隊列和發(fā)布訂閱模式是實現(xiàn)服務(wù)間解耦、異步通信的重要手段,本文將詳細(xì)介紹如何在Spring Boot項目中集成Redis,實現(xiàn)一個簡單但功能完整的發(fā)布訂閱系統(tǒng),需要的朋友可以參考下2026-02-02
Java線程核心操作之創(chuàng)建、啟動與安全停止完全解析
Java作為一種廣泛使用的編程語言,具有豐富的多線程支持,在Java中處理多線程的核心在于Thread類和Runnable接口,這篇文章主要介紹了Java線程核心操作之創(chuàng)建、啟動與安全停止完全解析的相關(guān)資料,需要的朋友可以參考下2026-03-03

