官术网_书友最值得收藏!

5.1 什么是服務治理

簡單地說,服務治理主要解決了兩個問題,一是如何獲取分布式環境中各個服務實例的目標地址,二是如何定時更新服務實例的當前狀態(是否可用或不可用)。只有解決了這兩個問題,各個微服務實例才能利用服務發現機制發起遠程調用。

微服務的本質是分布式架構的延伸,后臺服務被部署在多個分布式服務集群中。以電商中的下單場景為例,一個典型的微服務集群如圖5-1所示。

圖5-1 一個典型的微服務集群

在圖5-1中,訂單服務和商品服務是兩個獨立存在的微服務集群,它們之間存在上下游服務的調用關系。在創建一個用戶訂單的同時,訂單服務會調用商品服務獲取商品的基本信息。調用請求從訂單服務集群中的任意一臺機器發出,為了確保服務請求能夠發送給商品服務,我們需要有一個中心化組件來維護所有微服務的服務器列表,而這個中心化組件可以通過心跳連接等方式感知服務器的運行狀態(狀態可用、不可用)。

基于圖5-1中描述的需求背景,“注冊中心”應運而生,它作為一個獨立的中間件用于維護服務的宿主機信息,包括服務器地址、端口號和服務名稱等。添加了注冊中心的服務集群如圖5-2所示。

圖5-2 添加了注冊中心的服務集群示意圖

如圖5-2所示,注冊中心有以下三個主要任務:

1. 服務注冊

當客戶端啟動服務時,會主動向注冊中心注冊自己的信息,包括地址信息、服務名稱及服務狀態。

2. 服務發現

客戶端服務從注冊中心獲取當前已注冊的機器列表信息,包括地址端口和服務名稱。

3. 維護注冊表

如果某個應用服務器主動下線,或者因為網絡故障等原因無法繼續提供服務,那么注冊中心需要將這臺服務器從可用機器列表中刪除。

主站蜘蛛池模板: 柞水县| 甘南县| 府谷县| 岳西县| 兴义市| 黔江区| 潞城市| 卢湾区| 得荣县| 大理市| 家居| 东辽县| 新蔡县| 高台县| 诸暨市| 乌海市| 东港市| 云浮市| 南木林县| 泽州县| 屏边| 西藏| 吉木萨尔县| 黄骅市| 长治县| 靖西县| 雷山县| 梓潼县| 上饶县| 姜堰市| 镇雄县| 清丰县| 满城县| 鹤峰县| 福建省| 和顺县| 东明县| 浮梁县| 阿尔山市| 黎平县| 修文县|