歡迎來到Nacos的世界!

什麼是Nacos?

Nacos 是構建以“服務”爲中心的現代應用架構 (例如微服務範式、雲原生範式) 的服務基礎設施。

Nacos可以做什麼?

1、動態配置服務:支持以中心化、外部化和動態化的方式管理所有環境的配置。動態配置消除了配置變更時重新部署應用和服務的需要。配置中心化管理讓實現無狀態服務更簡單,也讓按需彈性擴展服務更容易。
2、服務發現及管理:支持DNS-Based和RPC-Based(Dubbo、gRPC)模式的服務發現,同時提供實時健康檢查,以防止將請求發往不健康的主機或服務實例。藉助Nacos,可以更容易地爲服務實現斷路器。
3、動態DNS服務:通過支持權重路由,輕鬆實現中間層負載均衡、更靈活的路由策略、流量控制及簡單數據中心內網的簡單DNS解析服務。更加容易地實現以DNS協議爲基礎的服務發現,以消除耦合到廠商私有服務發現API上的風險。

Nacos的特性一覽

1、易於使用

動態配置管理、服務發現和動態的一站式解決方案
20多種開箱即用的以服務爲中心的架構特性
基本符合生產要求的輕量級易用控制檯

2、更適應雲架構

無縫支持Kubernetes和Spring Cloud
在主流公共雲上更容易部署和運行(例如阿里雲和AWS)
多租戶和多環境支持

3、生產等級

脫胎於歷經阿里巴巴10年生產驗證的內部產品
支持具有數百萬服務的大規模場景
具備企業級SLA的開源產品

4、豐富的應用場景

支持限流、大促銷預案和異地多活
直接支持或稍作擴展即可支持大量有用的互聯網應用場景
流量調度和服務治理

Nacos架構

clipboard.png

Nacos概念

  • 地域(Region):物理的數據中心,資源創建成功後不能更換
  • 可用區(Available Zone):同一地域內,電力和網絡互相獨立的物理區域。同一可用區內,實例的網絡延遲較低。
  • 接入點(Endpoint):地域的某個服務的入口域名
  • 命名空間(Namespace):用於進行租戶粒度隔離。不同的命名空間下,可以存在相同的Group或Data ID的配置。
  • 配置(Configuration):從代碼中分離出來獨立管理的變量、需要變更的參數等
  • 配置管理(Configuration Management):系統配置的編輯、存儲、分發、變更管理、歷史版本管理、變更審計等所有與配置相關的活動。
  • 配置項(Configuration Item):一個具體的可配置的參數與其值域,通常以 param-key=param-value 的形式存在。
  • 配置集(Configuration Set):一組相關或者不相關的配置項的集合。在系統中,一個配置文件通常就是一個配置集,包含了系統各個方面的配置。
  • 配置集ID(Data ID):某個配置集的ID,是組織劃分配置的維度之一,通常用於組織劃分系統的配置集。一個系統或者應用可以包含多個配置集,每個配置集都可以被一個有意義的名稱標識,通常採用類 Java包的命名規則保證全局唯一性(此命名規則非強制)。
  • 配置分組(Group):一組配置集,是組織配置的維度之一,通過一個有意義的字符串對配置集進行分組,從而區分 Data ID 相同的配置集。創建一個配置時,如果未填寫配置分組的名稱,則配置分組的名稱默認採用DEFAULT_GROUP。
  • 配置快照(Configuration Snapshot):Nacos 的客戶端 SDK 會在本地生成配置的快照。當客戶端無法連接到 Nacos Server 時,可以使用配置快照顯示系統的整體容災能力。
  • 服務(Service):通過預定義接口網絡訪問的提供給客戶端的軟件功能。
  • 服務名(Service Name):服務提供的標識,通過該標識可以唯一確定其指代的服務。
  • 服務註冊中心(Service Registry):存儲服務實例和服務負載均衡策略的數據庫。
  • 服務元數據(Service Metadata):服務元數據是指包括服務端點(endpoints)、服務標籤、服務版本號、服務實例權重、路由規則、安全策略等描述服務的數據
  • 服務提供方(Service Provider):是指提供可複用和可調用服務的應用方
  • 服務消費方(Service Consumer):是指會發起對某個服務調用的應用方
  • 服務發現(Service Discovery):在計算機網絡上,對服務下的實例的地址和元數據進行探測,並以預先定義的接口提供給客戶端進行查詢。
  • 服務分組(Service Group):不同的服務可以歸類到同一分組。
  • 名字服務(Naming Service):提供分佈式系統中所有對象(Object)、實體(Entity)的“名字”到關聯的元數據之間的映射管理服務
  • 配置服務(Configuration Service):在服務或者應用運行過程中,提供動態配置或者元數據以及配置管理的服務提供者。
  • 元數據(Metadata):Nacos數據(如配置和服務)描述信息,如服務版本、權重、容災策略、負載均衡策略、鑑權配置、各種自定義標籤 (label),從作用範圍來看,分爲服務級別的元信息、集羣的元信息及實例的元信息。
  • 應用(Application):用於標識服務提供方的服務的屬性。
  • 虛擬集羣(Virtual Cluster):同一個服務下的所有服務實例組成一個默認集羣,集羣可以被進一步按需劃分,劃分的單位可以是虛擬集羣。
  • 實例(Instance):提供一個或多個服務的具有可訪問網絡地址(IP:Port)的進程。
  • 權重(Weight):實例級別的配置,權重爲浮點數,權重越大,分配給該實例的流量越大。
  • 健康檢查(Health Check):以指定方式檢查服務下掛載的實例的健康度,從而確認該實例是否能夠提供服務。根據檢查結果,實例會被判斷是否健康,對服務發起解析請求時,不健康的實例不會返回給客戶端。
  • 健康保護閾值(Protect Threshold):爲防止因過多實例不健康導致流量全部流向健康的實例,繼而造成流量壓力把健康的實例壓垮並形成雪崩效應,應將健康保護閾值定義未一個0~1之間的浮點數,當域名健康實例佔總服務實例的比例小於該值時,無論實例是否健康,都會將這個實例返回給客戶端,這樣做雖然損失了一部分流量,但是保證了集羣的剩餘健康實例能夠正常工作。
以上內容整理源自:Nacos官網

梳理好Nacos的架構及概念,接下來準備Nacos的環境,Nacos的環境安裝非常簡單,首先從 GitHub 上 checkout 源碼,編譯獲取安裝包,命令如下:

mvn -Prelease-nacos clean install -U

編譯完成後

clipboard.png

clipboard.png

因爲我使用的是Windows,所以取target下的nacos-server-0.8.0.zip包(當然也可以從Github上直接下載安裝包),將其解壓到任意目錄下

注意:所解壓目錄的文件路徑不能包含空格,例如:D:/Program Files/Nacos,否則在啓動Nacos Server時,會提示錯誤:找不到或無法加載主類 Files/Nacos/bin/Files/Nacos/plugins/cmdb

解壓後,進入bin目錄,雙擊startup.cmd,此時,Nacos Server就開始啓動了

clipboard.png

在啓動界面中,可以看到Nacos的版本、運行模式、端口號、進程號、Console等信息,其中Console:http://192.168.1.102:8848/nacos/index.html的地址就是Nacos的控制檯,可以直接在瀏覽器訪問:

clipboard.png

Nacos控制檯的默認賬號密碼爲:nacos/nacos

登錄後可以看到如下界面,在控制檯可以進行配置和服務的管理

clipboard.png

怎麼樣,是不是感覺很簡單?

好了,Nacos就先介紹到這裏,下一期將以一個完整的案例來介紹Nacos的用法和特性。

參考資料
Nacos官網:https://nacos.io/zh-cn/index....
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章