Nacos Concepts(概念)
Nacos 引入了一些基本的概念,系統性的了解一下這些概念可以幫助您更好的理解和正確的使用 Nacos 產品。
Region-地域
物理的數據中心,資源創建成功后不能更換。
AvailableZone - 可用區
同一地域內,電力和網絡互相獨立的物理區域。同一可用區內,實例的網絡延遲較低。
Endpoint - 接入點
地域的某個服務的入口域名。
Namespace - 命名空間
用於進行租戶粒度的配置隔離。不同的命名空間下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用場景之一是不同環境的配置的區分隔離,例如開發測試環境和生產環境的資源(如配置、服務)隔離等。
Configuration-配置
在系統開發過程中,開發者通常會將一些需要變更的參數、變量等從代碼中分離出來獨立管理,以獨立的配置文件的形式存在。目的是讓靜態的系統工件或者交付物(如 WAR,JAR 包等)更好地和實際的物理運行環境進行適配。配置管理一般包含在系統部署的過程中,由系統管理員或者運維人員完成。配置變更是調整系統運行時的行為的有效手段。
Configuration Management-配置管理
系統配置的編輯、存儲、分發、變更管理、歷史版本管理、變更審計等所有與配置相關的活動。
Configuration Item-配置項
一個具體的可配置的參數與其值域,通常以 param-key=param-value 的形式存在。例如我們常配置系統的日志輸出級別(logLevel=INFO|WARN|ERROR) 就是一個配置項。
Configuration Set-配置集
一組相關或者不相關的配置項的集合稱為配置集。在系統中,一個配置文件通常就是一個配置集,包含了系統各個方面的配置。例如,一個配置集可能包含了數據源、線程池、日志級別等配置項。
Data ID-配置集 ID
Nacos 中的某個配置集的 ID。配置集 ID 是組織划分配置的維度之一。Data ID 通常用於組織划分系統的配置集。一個系統或者應用可以包含多個配置集,每個配置集都可以被一個有意義的名稱標識。Data ID 通常采用類 Java 包(如 com.taobao.tc.refund.log.level)的命名規則保證全局唯一性。此命名規則非強制。
Group-配置分組
Nacos 中的一組配置集,是組織配置的維度之一。通過一個有意義的字符串(如 Buy 或 Trade )對配置集進行分組,從而區分 Data ID 相同的配置集。當您在 Nacos 上創建一個配置時,如果未填寫配置分組的名稱,則配置分組的名稱默認采用 DEFAULT_GROUP 。配置分組的常見場景:不同的應用或組件使用了相同的配置類型,如 database_url 配置和 MQ_topic 配置。
Configuration Snapshot-配置快照
Nacos 的客戶端 SDK 會在本地生成配置的快照。當客戶端無法連接到 Nacos Server 時,可以使用配置快照顯示系統的整體容災能力。配置快照類似於 Git 中的本地 commit,也類似於緩存,會在適當的時機更新,但是並沒有緩存過期(expiration)的概念。
Service-服務
通過預定義接口網絡訪問的提供給客戶端的軟件功能。
Service Name-服務名
服務提供的標識,通過該標識可以唯一確定其指代的服務。
Service Registry-服務注冊中心
存儲服務實例和服務負載均衡策略的數據庫。
Service Discovery-服務發現
在計算機網絡上,(通常使用服務名)對服務下的實例的地址和元數據進行探測,並以預先定義的接口提供給客戶端進行查詢。
Metadata-元信息
Nacos數據(如配置和服務)描述信息,如服務版本、權重、容災策略、負載均衡策略、鑒權配置、各種自定義標簽 (label),從作用范圍來看,分為服務級別的元信息、集群的元信息及實例的元信息。
Application-應用
用於標識服務提供方的服務的屬性。
Service Group-服務分組
不同的服務可以歸類到同一分組。
Virtual Cluster-虛擬集群
同一個服務下的所有服務實例組成一個默認集群, 集群可以被進一步按需求划分,划分的單位可以是虛擬集群。
Instance-實例
提供一個或多個服務的具有可訪問網絡地址(IP:Port)的進程。
Weight-權重
實例級別的配置。權重為浮點數。權重越大,分配給該實例的流量越大。
Health Check-健康檢查
以指定方式檢查服務下掛載的實例 (Instance) 的健康度,從而確認該實例 (Instance) 是否能提供服務。根據檢查結果,實例 (Instance) 會被判斷為健康或不健康。對服務發起解析請求時,不健康的實例 (Instance) 不會返回給客戶端。
Protect Threshold-健康保護閾值
為了防止因過多實例 (Instance) 不健康導致流量全部流向健康實例 (Instance) ,繼而造成流量壓力把健康 健康實例 (Instance) 壓垮並形成雪崩效應,應將健康保護閾值定義為一個 0 到 1 之間的浮點數。當域名健康實例 (Instance) 占總服務實例 (Instance) 的比例小於該值時,無論實例 (Instance) 是否健康,都會將這個實例 (Instance) 返回給客戶端。這樣做雖然損失了一部分流量,但是保證了集群的剩余健康實例 (Instance) 能正常工作。