1. 程式人生 > 實用技巧 >微服務架構系列之Nacos 配置核心概念

微服務架構系列之Nacos 配置核心概念

上次講了《微服務架構之Nacos配置中心之配置MySQL資料庫》,本次講述Nacos 配置核心概念。原作者:哈嘍沃德先生,謝謝關注哈嘍沃德先生。

1、配置

為什麼需要配置?概念。

在系統開發過程中,開發者通常會將一些需要變更的引數、變數等從程式碼中分離出來獨立管理,以獨立的配置檔案的形式存在。目的是讓靜態的系統工件或者交付物(如 WAR,JAR 包等)更好地和實際的物理執行環境進行適配。配置管理一般包含在系統部署的過程中,由系統管理員或者運維人員完成。配置變更是調整系統執行時的行為的有效手段。

2、配置管理

對配置的多維度管理。

系統配置的編輯、儲存、分發、變更管理、歷史版本管理、變更審計等所有與配置相關的活動。

3、配置項

一個鍵值對 Key = Value。

一個具體的可配置的引數與其值域(一個鍵值對),通常以 param-key=param-value 的形式存在。例如我們常配置系統的日誌輸出級別(logLevel=INFO|WARN|ERROR) 就是一個配置項。

4、配置集

多個鍵值對,一般指一個配置檔案。

一組相關或者不相關的配置項的集合稱為配置集(多個鍵值對/一個配置檔案)。在系統中,一個配置檔案通常就是一個配置集,包含了系統各個方面的配置。例如,一個配置集可能包含了資料來源、執行緒池、日誌級別等配置項。

5、配置集 ID

給這個配置檔案起一個全域性唯一的 ID。

Nacos 中的某個配置集的 ID。配置集 ID 是組織劃分配置的維度之一。Data ID 通常用於組織劃分系統的配置集。一個系統或者應用可以包含多個配置集,每個配置集都可以被一個有意義的名稱標識。Data ID 通常採用類 Java 包(如 com.taobao.tc.refund.log.level)的命名規則保證全域性唯一性。此命名規則非強制。

6、配置分組

多個配置檔案放在一起,形成組,一般用於區分專案。例如,某學校多應用之間的區分,教師應用 TEACHER_GROUP,學生應用 STUDENT_GROUP。

Nacos 中的一組配置集,是組織配置的維度之一。通過一個有意義的字串(如 Buy 或 Trade )對配置集進行分組,從而區分 Data ID 相同的配置集。當您在 Nacos 上建立一個配置時,如果未填寫配置分組的名稱,則配置分組的名稱預設採用 DEFAULT_GROUP 。配置分組的常見場景:不同的應用或元件使用了相同的配置型別,如 database_url 配置和 MQ_topic 配置。

7、配置快照

快取配置資訊。

Nacos 的客戶端 SDK 會在本地生成配置的快照。當客戶端無法連線到 Nacos Server 時,可以使用配置快照顯示系統的整體容災能力。配置快照類似於 Git 中的本地 commit,也類似於快取,會在適當的時機更新,但是並沒有快取過期(expiration)的概念。

8、名稱空間

區分環境,比如:dev、test、prod 等等。

用於進行租戶粒度的配置隔離。不同的名稱空間下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用場景之一是不同環境的配置的區分隔離,例如開發測試環境和生產環境的資源(如配置、服務)隔離等。

獲取更多spring微服務springcloud等視訊教程,請點:微服務架構spring全家桶

9、最佳實踐

通常我們可以這樣定義 Namespace,Group,DataId:

  • Namespace:代表不同的「環境」,如:開發、測試, 生產等;
  • Group:代表某個「專案」,如:XX物流專案,XX教育專案;
  • DataId:每個專案下往往有若干個「應用」,每個配置集(DataId)是一個應用的「主配置檔案」