Nacos配置中心功能

Nacos的配置管理模型

對於Nacos配置管理,通過Namespace、group、Data ID能夠定位到一個配置集。

img

命名空間(Namespace)

命名空間(namespace)可用於進行不同環境的配置隔離。例如可以隔離開發環境、測試環境和生產環境,因爲它們的配置可能各不相同,或者是隔離不同的用戶,不同的開發人員使用同一個nacos管理各自的配置,可通過namespace隔離。不同的命名空間下,可以存在相同名稱的配置分組(Group) 或 配置集。

配置分組(Group)

配置分組是對配置集進行分組,通過一個有意義的字符串(如 Buy 或 Trade )來表示,不同的配置分組下可以有相同的配置集(Data ID)。當您在 Nacos 上創建一個配置時,如果未填寫配置分組的名稱,則配置分組的名稱默認採用 DEFAULT_GROUP 。配置分組的常見場景:可用於區分不同的項目或應用,例如:學生管理系統的配置集可以定義一個group爲:STUDENT_GROUP。

配置集(Data ID)

在系統中,一個配置文件通常就是一個配置集,一個配置集可以包含了系統的各種配置信息,例如,一個配置集可能包含了數據源、線程池、日誌級別等配置項。每個配置集都可以定義一個有意義的名稱,就是配置集的ID即DataID。

配置項

配置集中包含的一個個配置內容就是配置項。它代表一個具體的可配置的參數與其值域,通常以 key=value 的形式存在。例如我們常配置系統的日誌輸出級別(logLevel=INFO|WARN|ERROR) 就是一個配置項。

一個最佳實踐

Nacos抽象定義了Namespace、Group、Data ID的概念,具體這幾個概念代表什麼,取決於我們把它們看成什麼,這裏推薦給大家一種用法。

  • Namespace:代表不同環境,如開發、測試、生產環境;

  • Group:代表某項目,如XX醫療項目、XX電商項目;

  • DataId:每個項目下往往有若干個工程,每個配置集(DataId)是一個工程的主配置文件。

img

下面演示一個使用 spring boot 來獲取配置的列子。

step1:添加Nacos的配置

nacos:
  config:
    access-key: 127.0.0.1:8848
    namespace: 6f97a206-ce19-44c2-85be-c601170d306e  -- 不配置的話默認是public

image-20210714155922495

上面是在配置中心上已經創建的namespace,代碼中使用的是tpag這個空間。

step2:添加@NacosPropertySource註解

@Configuration
@NacosPropertySource(groupId = "xxl-job", dataId = "config-file", autoRefreshed = true)
public class NacosConfig {
}

上面的dataId必須填寫,groupId不填寫的默認。

image-20210714160255616

step3:使用配置

@RestController("/nacos")
public class NacosConfigCenter {

    @NacosValue(value = "${name:自由之路}", autoRefreshed = true)
    private String name;

    @GetMapping("/getName")
    public String getName() {
        return name;
    }
}

命名空間管理

namespace 的設計是 nacos 基於此做多環境以及多租戶(多個用戶共同使用nacos)數據(配置和服務)隔離的。

多環境的角度

從一個租戶(用戶)的角度來看,如果有多套不同的環境,那麼這個時候可以根據指定的環境來創建不同的 namespce,以此來實現多環境的隔離。例如,你可能有日常,預發和生產三個不同的環境,那麼使用一套 nacos 集羣可以分別建以下三個不同的 namespace。如下圖所示:

img

從多租戶的角度

從多個租戶(用戶)的角度來看,每個租戶(用戶)可能會有自己的 namespace,每個租戶(用戶)的配置數據以及註冊的服務數據都會歸屬到自己的 namespace 下,以此來實現多租戶間的數據隔離。例如超級管理員分配了三個租戶,分別爲張三、李四和王五。分配好了之後,各租戶用自己的賬戶名和密碼登錄後,創建自己的命名空間。如下圖所示:

img

可以通過Nacos控制檯上面的“命名空間”菜單來進行命名空間的管理。

image-20210714163854643

配置管理

通過控制檯的“配置管理”菜單可以很方便的進行配置管理。

image-20210714170059146

這裏面主要說下“監聽查詢”這個功能。

這個功能可以查詢到有哪些節點正在監聽配置文件,並且通過MD5值來判斷,節點監聽到的文件是不是最新的。

image-20210714175105102

參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章