基于Nacos的微服務架構
日期:2023年04月11日     新聞分類: 技術中心      瀏覽:428次
內容導讀:基于Nacos的微服務架構

Nacos是阿里的一個開源產品,是針對微服務架構中的服務發現、配置管理、服務治理的綜合型解決方案。

(用來實現配置中心和服務注冊中心)

服務發現和服務健康監測(使服務更容易注冊,并通過DNS或HTTP接口發現其他服務,還提供服務的實時健康檢查,以防 止向不健康的主機或服務實例發送請求。 )

支持基于DNS和基于RPC的服務發現。服務提供者使用原生SDK、OpenAPI、或一個獨立的Agent TODO注冊 Service 后,服務消費者可以使用DNS TODO 或HTTP&API查找和發現服務。

Nacos提供對服務的實時的健康檢查,阻止向不健康的主機或服務實例發送請求。Nacos 支持傳輸層 (PING 或 TCP)和應用層 (如 HTTP、MySQL、用戶自定義)的健康檢查。 對于復雜的云環境和網絡拓撲環境中(如 VPC、邊緣網絡等)服務的健康檢查,Nacos 提供了 agent 上報模式和服務端主動檢測2種健康檢查模式。Nacos 還提供了統一的健康檢查儀表盤,幫助您根據健康狀態管理服務的可用性及流量。

動態配置服務:

以中心化、外部化和動態化的方式管理所有環境的應用配置和服務配置。

消除了配置變更時重新部署應用和服務的需要,讓配置管理變得更加高效和敏捷。

配置中心化管理讓實現無狀態服務變得更簡單,讓服務按需彈性擴展變得更容易。

提供了一個簡潔易用的UI (控制臺樣例 Demo) 幫助管理所有的服務和應用的配置。

Nacos 還提供包括配置版本跟蹤、金絲雀發布、一鍵回滾配置以及客戶端配置更新狀態跟蹤在內的一系列開箱即用的配置管理特性,能更安全地在生產環境中管理配置變更和降低配置變更帶來的風險。

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

Nacos 提供了一些簡單的 DNS APIs TODO ,管理服務的關聯域名和可用的 IP:PORT 列表

服務及其元數據管理

從微服務平臺建設的視角管理數據中心的所有服務及元數據,包括管理服務的描述、生命周期、服務的靜態依賴分析、服務的健康狀態、服務的流量管理、路由及安全策略、服務的 SLA 以及最首要的 metrics 統計數據。

在微服務架構中一個業務流程需要多個微服務通過網絡接口調用完成業務處理,服務消費方從服務注冊中心獲取服 務提供方的地址,從而進行遠程調用,這個過程叫做服務發現。

服務發現過程

在微服務架構中,整個系統會按職責能力劃分為多個服務,通過服務之間協作來實現業務目標。服務的消費方要調用服務的生產方,為了完成一次請求,消費方需要知道服務生產方的網絡位置(IP地址和端口號)。

微服務可能是部署在云環境的,服務實例的網絡位置或許是動態分配的。

每個服務一般會有多個實例來做負載均衡,由于宕機或升級,服務實例網絡地址會經常動態改變。每個服務也可能應對臨時訪問壓力增加新的服務節點。

服務發現概念

服務發現就是服務消費方通過服務發現中心智能發現服務提供方,從而進行遠程調用的過程。服務實例本身并不記錄服務生產方的網絡地址,所有服務實例內部都會包含服務發現客戶端。

在每個服務啟動時會向服務發現中心上報自己的網絡位置。在服務發現中心內部會形成一個服務注冊表,服務注冊表是服務發現的核心部分,是包含所有服務實例的網絡地址的數據庫。

服務發現客戶端會定期從服務發現中心同步服務注冊表 ,并緩存在客戶端。

當需要對某服務進行請求時,服務實例通過該注冊表,定位目標服務網絡地址。若目標服務存在多個網絡地址,則使用負載均衡算法從多個服務實例中選擇出一個,然后發出請求。

服務發現產品對比

目前市面上用的比較多的服務發現中心有:Nacos、Eureka、Consul和Zookeeper。

負載均衡功能

在RESTful服務發現的流程中,ServiceA通過負載均衡調用ServiceB;

負載均衡就是將用戶請求(流量)通過一定的策略,分攤在多個服務實例上執行,它是系統處理高并發、緩解網絡壓力和進行服務端擴容的重要手段之一。

它分為服務端負載均衡和客戶端負載均衡。

服務器端負載均衡:

在負載均衡器中維護一個可用的服務實例清單,當客戶端請求時,負載均衡服務器按照某種配置好的規則(負載均衡算法)從可用服務實例清單中選取其一去處理客戶端的請求。這就是服務端負載均衡。

例如Nginx,通過Nginx進行負載均衡,客戶端發送請求至Nginx,Nginx通過負載均衡算法,在多個服務器 之間選擇一個進行訪問。即在服務器端再進行負載均衡算法分配。

上邊使用的LoadBalancerClient就是一個客戶端負載均衡器,具體使用的是Ribbon客戶端負載均衡器。 Ribbon在發送請求前通過負載均衡算法選擇一個服務實例,然后進行訪問,這是客戶端負載均衡。即在客戶端就進行負載均衡的分配。

Ribbon是一個客戶端負載均衡器,其責任是從一組實例列表中挑選合適的實例,如何挑選,取決于負載均衡策略 。

Ribbon核心組件IRule是負載均衡策略接口,實現:

RoundRobinRule(默認):輪詢,即按一定的順序輪換獲取實例的地址;

RandomRule:隨機,即以隨機的方式獲取實例的地址;

AvailabilityFilteringRule:會先過濾掉由于多次訪問故障而處于斷路器跳閘狀態的服務,以及并發的連接數量超過閾值的服務,然后對剩余的服務列表按照輪詢策略進行訪問;

WeightedResponseTimeRule:根據平均響應時間計算所有服務的權重,響應時間越快,服務權重越大,被選中的機率越高;剛啟動時,如果統計信息不足,則使用RoundRobinRule策略,等統計信息足夠時,會切換到 WeightedResponseTimeRule;

RetryRule:先按照RoundRobinRule的策略獲取服務,如果獲取服務失敗,則在指定時間內會進行重試,獲取可用的服務;

BestAvailableRule: 會先過濾掉由于多次訪問故障而處于斷路器跳閘狀態的服務,然后選擇一個并發量最小的服務;

ZoneAvoidanceRule:默認規則,復合判斷server所在區域的性能和server的可用性選擇服務器;

Nacos配置管理

配置中心

在微服務架構中為了統一管理各微服務的配置信息專門設置配置中心,配置中心就是一種統一管理各種應用配置的基礎服務組件。

配置應用程序在啟動和運行的時候往往需要讀取一些配置信息,配置基本上伴隨著應用程序的整個生命周期,比如:數據庫連接參數、啟動參數等。

配置特點:

配置是獨立于程序的只讀變量。配置對于程序是只讀的,程序通過讀取配置來改變自己的行為,但是程序不應該去改變配置

配置貫穿于應用的整個生命周期。應用在啟動時通過讀取配置來初始化,在運行時根據配置調整行為。 如:啟動時需要讀取服務的端口號、系統在運行過程中需要讀取定時策略執行定時任務等。

配置可以有多種加載方式。常見的有程序內部hard code,配置文件,環境變量,啟動參數,基于數據庫等

配置需要治理。同一份程序在不同的環境(開發,測試,生產)、不同的集群(如不同的數據中心)經常需要有不同的 配置,所以需要有完善的環境、集群配置管理

配置中心

微服務架構中,當系統從一個單體應用,被拆分成分布式系統上一個個服務節點后,配置文件也必須跟著遷移 (分割),這樣配置就分散了,同時分散中還包含著冗余

配置管理模型

對于Nacos配置管理,通過Namespace、group、Data ID能夠定位到一個配置集。

配置集(Data ID):

在系統中,一個配置文件通常就是一個配置集,一個配置集可以包含了系統的各種配置信息,如:一個配置集可能包含了數據源、線程池、日志級別等配置項。每個配置集都可以定義一個有意義的名稱,就是配置集的ID即Data ID。

配置項:

配置集中包含的一個個配置內容就是配置項。它代表一個具體的可配置的參數與其值域,通常以 key=value 的形式存在。如我們常配置系統的日志輸出級別(logLevel=INFO|WARN|ERROR) 就是一個配置項。

配置分組(Group):

配置分組是對配置集進行分組,通過一個有意義的字符串(如 Buy 或 Trade )來表示,不同的配置分組下可以有相同的配置集(Data ID)。當在 Nacos 上創建一個配置時,如果未填寫配置分組的名稱,則配置分組的名稱默認采用DEFAULT_GROUP 。配置分組的常見場景:可用于區分不同的項目或應用,例如:學生管理系統的配置集可以定義一個group為:STUDENT_GROUP。

命名空間(Namespace):

命名空間可用于進行不同環境的配置隔離。例如可以隔離開發環境、測試環境和生產環境,因為 它們的配置可能各不相同,或者是隔離不同的用戶,不同的開發人員使用同一個nacos管理各自的配置,可通過 namespace隔離。不同的命名空間下,可以存在相同名稱的配置分組(Group) 或 配置集。

版權所有: 山西科達自控股份有限公司 備案號:晉ICP備09004627號-2   

郵箱

keda@sxkeda.com

電話

400-0351-150

微信

專屬
客服

留言

右側導航

chinese乱子伦xxxx视频播放|女人与公拘交酡|综合欧美亚洲色偷拍区第二页|jizz国产精品网站