新疆建設(shè)管理局網(wǎng)站seo基礎(chǔ)教程使用
背景
? 服務(wù)發(fā)現(xiàn)是?個(gè)古老的話題,當(dāng)應(yīng)用開始脫離單機(jī)運(yùn)行和訪問時(shí),服務(wù)發(fā)現(xiàn)就誕生了。目前的網(wǎng)絡(luò)架構(gòu)是每個(gè)主機(jī)都有?個(gè)獨(dú)立的 IP 地址,那么服務(wù)發(fā)現(xiàn)基本上都是通過某種方式獲取到服務(wù)所部署的 IP 地址。DNS 協(xié)議是最早將?個(gè)網(wǎng)絡(luò)名稱翻譯為網(wǎng)絡(luò) IP 的協(xié)議,在最初的架構(gòu)選型中,DNS+LVS+Nginx 基本可以滿足所有的 RESTful 服務(wù)的發(fā)現(xiàn),此時(shí)服務(wù)的 IP 列表通常配置在 nginx或者 LVS。后來出現(xiàn)了 RPC 服務(wù),服務(wù)的上下線更加頻繁,人們開始尋求?種能夠支持動(dòng)態(tài)上下線并且推送 IP 列表變化的注冊(cè)中心產(chǎn)品。
? 服務(wù)注冊(cè)中心本質(zhì)上是為了解耦服務(wù)提供者和服務(wù)消費(fèi)者。對(duì)于任何一個(gè)微服務(wù),原則上都應(yīng)存在或者支持多個(gè)提供者,這是由微服務(wù)的分布式屬性決定的。更進(jìn)一步,為了支持彈性擴(kuò)縮容特性,一個(gè)微服務(wù)的提供者的數(shù)量和分布往往是動(dòng)態(tài)變化的,也是無法預(yù)先確定的。因此,原本在單體應(yīng)用階段常用的靜態(tài)LB機(jī)制就不再適用了,需要引入額外的組件來管理微服務(wù)提供者的注冊(cè)與發(fā)現(xiàn),而這個(gè)組件就是服務(wù)注冊(cè)中心。
Nacos誕生
? Nacos是阿里巴巴開源的一個(gè)對(duì)微服務(wù)架構(gòu)中服務(wù)發(fā)現(xiàn),配置管理和服務(wù)管理平臺(tái)。Nacos 致力于幫助您發(fā)現(xiàn)、配置和管理微服務(wù)。Nacos 提供了一組簡單易用的特性集,幫助您快速實(shí)現(xiàn)動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、服務(wù)配置、服務(wù)元數(shù)據(jù)及流量管理。
? Nacos 幫助您更敏捷和容易地構(gòu)建、交付和管理微服務(wù)平臺(tái)。 Nacos 是構(gòu)建以“服務(wù)”為中心的現(xiàn)代應(yīng)用架構(gòu) (例如微服務(wù)范式、云原生范式) 的服務(wù)基礎(chǔ)設(shè)施。
Nacos = Spring Cloud注冊(cè)中心 + Spring Cloud配置中心。
Nacos功能特征
-
服務(wù)發(fā)現(xiàn)與健康監(jiān)測:Nacos 支持基于 DNS 和基于 RPC 的服務(wù)發(fā)現(xiàn)。服務(wù)提供者使用 原生SDK、OpenAPI、或一個(gè)獨(dú)立的Agent TODO注冊(cè) Service 后,服務(wù)消費(fèi)者可以使用DNS TODO 或HTTP&API查找和發(fā)現(xiàn)服務(wù)。Nacos 提供對(duì)服務(wù)的實(shí)時(shí)的健康檢查,阻止向不健康的主機(jī)或服務(wù)實(shí)例發(fā)送請(qǐng)求。
-
動(dòng)態(tài)配置管理:動(dòng)態(tài)配置服務(wù)可以讓您以中心化、外部化和動(dòng)態(tài)化的方式管理所有環(huán)境的應(yīng)用配置和服務(wù)配置。動(dòng)態(tài)配置消除了配置變更時(shí)重新部署應(yīng)用和服務(wù)的需要,讓配置管理變得更加高效和敏捷。配置中心化管理讓實(shí)現(xiàn)無狀態(tài)服務(wù)變得更簡單,讓服務(wù)按需彈性擴(kuò)展變得更容易。
-
動(dòng)態(tài)DNS服務(wù):動(dòng)態(tài) DNS 服務(wù)支持權(quán)重路由,讓您更容易地實(shí)現(xiàn)中間層負(fù)載均衡、更靈活的路由策略、流量控制以及數(shù)據(jù)中心內(nèi)網(wǎng)的簡單DNS解析服務(wù)。
-
服務(wù)和元數(shù)據(jù)管理:Nacos 能讓您從微服務(wù)平臺(tái)建設(shè)的視角管理數(shù)據(jù)中心的所有服務(wù)及元數(shù)據(jù),包括管理服務(wù)的描述、生命周期、服務(wù)的靜態(tài)依賴分析、服務(wù)的健康狀態(tài)、服務(wù)的流量管理、路由及安全策略、服務(wù)的 SLA 以及最首要的 metrics 統(tǒng)計(jì)數(shù)據(jù)。
Nacos地圖
- 特性大圖:要從功能特性,非功能特性,全面介紹我們要解的問題域的特性訴求
- 架構(gòu)大圖:通過清晰架構(gòu),讓您快速進(jìn)入 Nacos 世界
- 業(yè)務(wù)大圖:利用當(dāng)前特性可以支持的業(yè)務(wù)場景,及其最佳實(shí)踐
- 生態(tài)大圖:系統(tǒng)梳理 Nacos 和主流技術(shù)生態(tài)的關(guān)系
- 優(yōu)勢大圖:展示 Nacos 核心競爭力
- 戰(zhàn)略大圖:要從戰(zhàn)略到戰(zhàn)術(shù)層面講 Nacos 的宏觀優(yōu)勢
Nacos生態(tài)圖
Nacos概念
命名空間
? 用于進(jìn)行租戶粒度的配置隔離。不同的命名空間下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用場景之一是不同環(huán)境的配置的區(qū)分隔離,例如開發(fā)測試環(huán)境和生產(chǎn)環(huán)境的資源(如配置、服務(wù))隔離等。
配置集ID
? Nacos 中的某個(gè)配置集的 ID。配置集 ID 是組織劃分配置的維度之一。Data ID 通常用于組織劃分系統(tǒng)的配置集。一個(gè)系統(tǒng)或者應(yīng)用可以包含多個(gè)配置集,每個(gè)配置集都可以被一個(gè)有意義的名稱標(biāo)識(shí)。Data ID 通常采用類 Java 包的命名規(guī)則保證全局唯一性。此命名規(guī)則非強(qiáng)制。
配置分組
? Nacos 中的一組配置集,是組織配置的維度之一。通過一個(gè)有意義的字符串(如 Buy 或 Trade )對(duì)配置集進(jìn)行分組,從而區(qū)分 Data ID 相同的配置集。當(dāng)您在 Nacos 上創(chuàng)建一個(gè)配置時(shí),如果未填寫配置分組的名稱,則配置分組的名稱默認(rèn)采用 DEFAULT_GROUP 。配置分組的常見場景:不同的應(yīng)用或組件使用了相同的配置類型,如 database_url 配置和 MQ_topic 配置。
健康檢查
? 以指定方式檢查服務(wù)下掛載的實(shí)例 (Instance) 的健康度,從而確認(rèn)該實(shí)例 (Instance) 是否能提供服務(wù)。根據(jù)檢查結(jié)果,實(shí)例 (Instance) 會(huì)被判斷為健康或不健康。對(duì)服務(wù)發(fā)起解析請(qǐng)求時(shí),不健康的實(shí)例 (Instance) 不會(huì)返回給客戶端。
健康保護(hù)閾值
? 為了防止因過多實(shí)例 (Instance) 不健康導(dǎo)致流量全部流向健康實(shí)例 (Instance) ,繼而造成流量壓力把健康實(shí)例 (Instance) 壓垮并形成雪崩效應(yīng),應(yīng)將健康保護(hù)閾值定義為一個(gè) 0 到 1 之間的浮點(diǎn)數(shù)。當(dāng)域名健康實(shí)例數(shù) (Instance) 占總服務(wù)實(shí)例數(shù) (Instance) 的比例小于該值時(shí),無論實(shí)例 (Instance) 是否健康,都會(huì)將這個(gè)實(shí)例 (Instance) 返回給客戶端。這樣做雖然損失了一部分流量,但是保證了集群中剩余健康實(shí)例 (Instance) 能正常工作。
領(lǐng)域模型
數(shù)據(jù)模型
Nacos 數(shù)據(jù)模型 Key 由三元組唯一確定, Namespace默認(rèn)是空串,公共命名空間(public),分組默認(rèn)是 DEFAULT_GROUP。
- 作為注冊(cè)中心時(shí),Namespace + Group + Service
- 作為配置中心時(shí),Namespace + Group + DataId
Namespace命名空間
用于進(jìn)行租戶粒度的配置隔離。默認(rèn)為 public(公共命名空間)。
不同的命名空間下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用場景之一是不同環(huán)境的配置的區(qū)分隔離,例如開發(fā)測試環(huán)境和生產(chǎn)環(huán)境的資源(如配置、服務(wù))隔離等。
Group服務(wù)分組
不同的服務(wù)可以歸類到統(tǒng)一分組。默認(rèn)為DEFAULT_GROUP(默認(rèn)分組)
配置領(lǐng)域模型
圍繞配置,主要有兩個(gè)關(guān)聯(lián)的實(shí)體,一個(gè)是配置變更歷史,一個(gè)是服務(wù)標(biāo)簽(用于打標(biāo)分類,方便索引),由 ID 關(guān)聯(lián)。