Nacos系列:歡迎來到Nacos的世界!

什麼是Nacos?

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

Nacos能夠作什麼?

一、動態配置服務:支持以中心化、外部化和動態化的方式管理全部環境的配置。動態配置消除了配置變動時從新部署應用和服務的須要。配置中心化管理讓實現無狀態服務更簡單,也讓按需彈性擴展服務更容易。git

二、服務發現及管理:支持DNS-Based和RPC-Based(Dubbo、gRPC)模式的服務發現,同時提供實時健康檢查,以防止將請求發往不健康的主機或服務實例。藉助Nacos,能夠更容易地爲服務實現斷路器。github

三、動態DNS服務:經過支持權重路由,輕鬆實現中間層負載均衡、更靈活的路由策略、流量控制及簡單數據中心內網的簡單DNS解析服務。更加容易地實現以DNS協議爲基礎的服務發現,以消除耦合到廠商私有服務發現API上的風險。數據庫

Nacos的特性一覽

一、易於使用瀏覽器

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

二、更適應雲架構bash

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

三、生產等級架構

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

四、豐富的應用場景

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

Nacos架構

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
複製代碼

編譯完成後

由於我使用的是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就開始啓動了

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

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

登陸後能夠看到以下界面,在控制檯能夠進行配置和服務的管理

怎麼樣,是否是感受很簡單?

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

參考資料

相關文章
相關標籤/搜索