摘要:元數(shù)據(jù)數(shù)據(jù)如配置和服務(wù)描述信息,如服務(wù)版本權(quán)重容災(zāi)策略負(fù)載均衡策略鑒權(quán)配置各種自定義標(biāo)簽,從作用范圍來看,分為服務(wù)級(jí)別的元信息集群的元信息及實(shí)例的元信息。
什么是Nacos?
Nacos 是構(gòu)建以“服務(wù)”為中心的現(xiàn)代應(yīng)用架構(gòu) (例如微服務(wù)范式、云原生范式) 的服務(wù)基礎(chǔ)設(shè)施。
Nacos可以做什么?1、動(dòng)態(tài)配置服務(wù):支持以中心化、外部化和動(dòng)態(tài)化的方式管理所有環(huán)境的配置。動(dòng)態(tài)配置消除了配置變更時(shí)重新部署應(yīng)用和服務(wù)的需要。配置中心化管理讓實(shí)現(xiàn)無狀態(tài)服務(wù)更簡單,也讓按需彈性擴(kuò)展服務(wù)更容易。
2、服務(wù)發(fā)現(xiàn)及管理:支持DNS-Based和RPC-Based(Dubbo、gRPC)模式的服務(wù)發(fā)現(xiàn),同時(shí)提供實(shí)時(shí)健康檢查,以防止將請(qǐng)求發(fā)往不健康的主機(jī)或服務(wù)實(shí)例。借助Nacos,可以更容易地為服務(wù)實(shí)現(xiàn)斷路器。
3、動(dòng)態(tài)DNS服務(wù):通過支持權(quán)重路由,輕松實(shí)現(xiàn)中間層負(fù)載均衡、更靈活的路由策略、流量控制及簡單數(shù)據(jù)中心內(nèi)網(wǎng)的簡單DNS解析服務(wù)。更加容易地實(shí)現(xiàn)以DNS協(xié)議為基礎(chǔ)的服務(wù)發(fā)現(xiàn),以消除耦合到廠商私有服務(wù)發(fā)現(xiàn)API上的風(fēng)險(xiǎn)。
1、易于使用
動(dòng)態(tài)配置管理、服務(wù)發(fā)現(xiàn)和動(dòng)態(tài)的一站式解決方案
20多種開箱即用的以服務(wù)為中心的架構(gòu)特性
基本符合生產(chǎn)要求的輕量級(jí)易用控制臺(tái)
2、更適應(yīng)云架構(gòu)
無縫支持Kubernetes和Spring Cloud
在主流公共云上更容易部署和運(yùn)行(例如阿里云和AWS)
多租戶和多環(huán)境支持
3、生產(chǎn)等級(jí)
脫胎于歷經(jīng)阿里巴巴10年生產(chǎn)驗(yàn)證的內(nèi)部產(chǎn)品
支持具有數(shù)百萬服務(wù)的大規(guī)模場景
具備企業(yè)級(jí)SLA的開源產(chǎn)品
4、豐富的應(yīng)用場景
支持限流、大促銷預(yù)案和異地多活Nacos架構(gòu) Nacos概念
直接支持或稍作擴(kuò)展即可支持大量有用的互聯(lián)網(wǎng)應(yīng)用場景
流量調(diào)度和服務(wù)治理
地域(Region):物理的數(shù)據(jù)中心,資源創(chuàng)建成功后不能更換
可用區(qū)(Available Zone):同一地域內(nèi),電力和網(wǎng)絡(luò)互相獨(dú)立的物理區(qū)域。同一可用區(qū)內(nèi),實(shí)例的網(wǎng)絡(luò)延遲較低。
接入點(diǎn)(Endpoint):地域的某個(gè)服務(wù)的入口域名
命名空間(Namespace):用于進(jìn)行租戶粒度隔離。不同的命名空間下,可以存在相同的Group或Data ID的配置。
配置(Configuration):從代碼中分離出來獨(dú)立管理的變量、需要變更的參數(shù)等
配置管理(Configuration Management):系統(tǒng)配置的編輯、存儲(chǔ)、分發(fā)、變更管理、歷史版本管理、變更審計(jì)等所有與配置相關(guān)的活動(dòng)。
配置項(xiàng)(Configuration Item):一個(gè)具體的可配置的參數(shù)與其值域,通常以 param-key=param-value 的形式存在。
配置集(Configuration Set):一組相關(guān)或者不相關(guān)的配置項(xiàng)的集合。在系統(tǒng)中,一個(gè)配置文件通常就是一個(gè)配置集,包含了系統(tǒng)各個(gè)方面的配置。
配置集ID(Data ID):某個(gè)配置集的ID,是組織劃分配置的維度之一,通常用于組織劃分系統(tǒng)的配置集。一個(gè)系統(tǒng)或者應(yīng)用可以包含多個(gè)配置集,每個(gè)配置集都可以被一個(gè)有意義的名稱標(biāo)識(shí),通常采用類 Java包的命名規(guī)則保證全局唯一性(此命名規(guī)則非強(qiáng)制)。
配置分組(Group):一組配置集,是組織配置的維度之一,通過一個(gè)有意義的字符串對(duì)配置集進(jìn)行分組,從而區(qū)分 Data ID 相同的配置集。創(chuàng)建一個(gè)配置時(shí),如果未填寫配置分組的名稱,則配置分組的名稱默認(rèn)采用DEFAULT_GROUP。
配置快照(Configuration Snapshot):Nacos 的客戶端 SDK 會(huì)在本地生成配置的快照。當(dāng)客戶端無法連接到 Nacos Server 時(shí),可以使用配置快照顯示系統(tǒng)的整體容災(zāi)能力。
服務(wù)(Service):通過預(yù)定義接口網(wǎng)絡(luò)訪問的提供給客戶端的軟件功能。
服務(wù)名(Service Name):服務(wù)提供的標(biāo)識(shí),通過該標(biāo)識(shí)可以唯一確定其指代的服務(wù)。
服務(wù)注冊(cè)中心(Service Registry):存儲(chǔ)服務(wù)實(shí)例和服務(wù)負(fù)載均衡策略的數(shù)據(jù)庫。
服務(wù)元數(shù)據(jù)(Service Metadata):服務(wù)元數(shù)據(jù)是指包括服務(wù)端點(diǎn)(endpoints)、服務(wù)標(biāo)簽、服務(wù)版本號(hào)、服務(wù)實(shí)例權(quán)重、路由規(guī)則、安全策略等描述服務(wù)的數(shù)據(jù)
服務(wù)提供方(Service Provider):是指提供可復(fù)用和可調(diào)用服務(wù)的應(yīng)用方
服務(wù)消費(fèi)方(Service Consumer):是指會(huì)發(fā)起對(duì)某個(gè)服務(wù)調(diào)用的應(yīng)用方
服務(wù)發(fā)現(xiàn)(Service Discovery):在計(jì)算機(jī)網(wǎng)絡(luò)上,對(duì)服務(wù)下的實(shí)例的地址和元數(shù)據(jù)進(jìn)行探測,并以預(yù)先定義的接口提供給客戶端進(jìn)行查詢。
服務(wù)分組(Service Group):不同的服務(wù)可以歸類到同一分組。
名字服務(wù)(Naming Service):提供分布式系統(tǒng)中所有對(duì)象(Object)、實(shí)體(Entity)的“名字”到關(guān)聯(lián)的元數(shù)據(jù)之間的映射管理服務(wù)
配置服務(wù)(Configuration Service):在服務(wù)或者應(yīng)用運(yùn)行過程中,提供動(dòng)態(tài)配置或者元數(shù)據(jù)以及配置管理的服務(wù)提供者。
元數(shù)據(jù)(Metadata):Nacos數(shù)據(jù)(如配置和服務(wù))描述信息,如服務(wù)版本、權(quán)重、容災(zāi)策略、負(fù)載均衡策略、鑒權(quán)配置、各種自定義標(biāo)簽 (label),從作用范圍來看,分為服務(wù)級(jí)別的元信息、集群的元信息及實(shí)例的元信息。
應(yīng)用(Application):用于標(biāo)識(shí)服務(wù)提供方的服務(wù)的屬性。
虛擬集群(Virtual Cluster):同一個(gè)服務(wù)下的所有服務(wù)實(shí)例組成一個(gè)默認(rèn)集群,集群可以被進(jìn)一步按需劃分,劃分的單位可以是虛擬集群。
實(shí)例(Instance):提供一個(gè)或多個(gè)服務(wù)的具有可訪問網(wǎng)絡(luò)地址(IP:Port)的進(jìn)程。
權(quán)重(Weight):實(shí)例級(jí)別的配置,權(quán)重為浮點(diǎn)數(shù),權(quán)重越大,分配給該實(shí)例的流量越大。
健康檢查(Health Check):以指定方式檢查服務(wù)下掛載的實(shí)例的健康度,從而確認(rèn)該實(shí)例是否能夠提供服務(wù)。根據(jù)檢查結(jié)果,實(shí)例會(huì)被判斷是否健康,對(duì)服務(wù)發(fā)起解析請(qǐng)求時(shí),不健康的實(shí)例不會(huì)返回給客戶端。
健康保護(hù)閾值(Protect Threshold):為防止因過多實(shí)例不健康導(dǎo)致流量全部流向健康的實(shí)例,繼而造成流量壓力把健康的實(shí)例壓垮并形成雪崩效應(yīng),應(yīng)將健康保護(hù)閾值定義未一個(gè)0~1之間的浮點(diǎn)數(shù),當(dāng)域名健康實(shí)例占總服務(wù)實(shí)例的比例小于該值時(shí),無論實(shí)例是否健康,都會(huì)將這個(gè)實(shí)例返回給客戶端,這樣做雖然損失了一部分流量,但是保證了集群的剩余健康實(shí)例能夠正常工作。
以上內(nèi)容整理源自:Nacos官網(wǎng)
梳理好Nacos的架構(gòu)及概念,接下來準(zhǔn)備Nacos的環(huán)境,Nacos的環(huán)境安裝非常簡單,首先從 GitHub 上 checkout 源碼,編譯獲取安裝包,命令如下:
mvn -Prelease-nacos clean install -U
編譯完成后
因?yàn)槲沂褂玫氖荳indows,所以取target下的nacos-server-0.8.0.zip包(當(dāng)然也可以從Github上直接下載安裝包),將其解壓到任意目錄下
注意:所解壓目錄的文件路徑不能包含空格,例如:D:/Program Files/Nacos,否則在啟動(dòng)Nacos Server時(shí),會(huì)提示錯(cuò)誤:找不到或無法加載主類 Files/Nacos/bin/Files/Nacos/plugins/cmdb
解壓后,進(jìn)入bin目錄,雙擊startup.cmd,此時(shí),Nacos Server就開始啟動(dòng)了
在啟動(dòng)界面中,可以看到Nacos的版本、運(yùn)行模式、端口號(hào)、進(jìn)程號(hào)、Console等信息,其中Console:http://192.168.1.102:8848/nacos/index.html的地址就是Nacos的控制臺(tái),可以直接在瀏覽器訪問:
Nacos控制臺(tái)的默認(rèn)賬號(hào)密碼為:nacos/nacos
登錄后可以看到如下界面,在控制臺(tái)可以進(jìn)行配置和服務(wù)的管理
怎么樣,是不是感覺很簡單?
好了,Nacos就先介紹到這里,下一期將以一個(gè)完整的案例來介紹Nacos的用法和特性。
參考資料Nacos官網(wǎng)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/73271.html
摘要:在上面這個(gè)例子中,沃爾瑪就是服務(wù)提供者,小明和小新是服務(wù)消費(fèi)者,微信公眾號(hào)類似于注冊(cè)中心,沃爾瑪將服務(wù)發(fā)布到注冊(cè)中心,小明和小新作為消費(fèi)者,訂閱注冊(cè)中心上沃爾瑪提供的服務(wù),通過微信公眾號(hào),沃爾瑪服務(wù)方和小明小新消費(fèi)方就解耦了。 前言 所謂注冊(cè)中心,其實(shí)是分布式架構(gòu)演進(jìn)過程中的產(chǎn)物,在系統(tǒng)中充當(dāng)一個(gè)協(xié)調(diào)者的角色。但是,為什么需要這樣一個(gè)協(xié)調(diào)者的角色呢?我們先來看一個(gè)例子,以便理解為什么分...
摘要:數(shù)據(jù)源內(nèi)嵌的數(shù)據(jù)庫,通過命令直接啟動(dòng)即可,無需額外安裝。參考資料部署手冊(cè)集群部署說明推薦閱讀系列歡迎來到的世界系列基于的注冊(cè)中心系列基于的配置中心系列的使用 三種部署模式 Nacos支持三種部署模式 1、單機(jī)模式:可用于測試和單機(jī)使用,生產(chǎn)環(huán)境切忌使用單機(jī)模式(滿足不了高可用) 2、集群模式:可用于生產(chǎn)環(huán)境,確保高可用 3、多集群模式:可用于多數(shù)據(jù)中心場景 單機(jī)模式 啟動(dòng) Nacos ...
摘要:殺只雞而已,你拿牛刀來做甚釋義小團(tuán)隊(duì)小項(xiàng)目選擇簡單的配置管理方式就好了,要什么配置中心,純屬?zèng)]事找事。,我就啰嗦到這里吧,下面正式介紹作為配置中心是怎么使用的。 前言 在看正文之前,我想請(qǐng)你回顧一下自己待過的公司都是怎么管理配置的,我想應(yīng)該會(huì)有以下幾種方式: 1、硬編碼沒有什么配置不配置的,直接寫在代碼里面,比如使用常量類優(yōu)勢:對(duì)開發(fā)友好,開發(fā)清楚地知道代碼需要用到什么配置劣勢:涉及秘...
摘要:發(fā)布配置支持程序自動(dòng)發(fā)布配置,創(chuàng)建和修改配置使用同一個(gè)方法,配置不存在則創(chuàng)建配置已存在則更新。示例源碼項(xiàng)目代碼已上傳至碼云和上,歡迎下載學(xué)習(xí)參考資料用戶指南的推薦閱讀系列歡迎來到的世界系列基于的注冊(cè)中心系列基于的配置中心 Maven依賴 Nacos提供完整的Java SDK,便于配置管理和服務(wù)發(fā)現(xiàn)及管理,以 Nacos-0.8.0 版本為例 添加Maven依賴: com.al...
閱讀 1410·2021-11-25 09:43
閱讀 3639·2021-11-10 11:48
閱讀 5283·2021-09-23 11:21
閱讀 1625·2019-08-30 15:55
閱讀 3535·2019-08-30 13:53
閱讀 1269·2019-08-30 10:51
閱讀 894·2019-08-29 14:20
閱讀 2001·2019-08-29 13:11