- 微服務從小白到專家:Spring Cloud和Kubernetes實戰
- 姚秋辰 張昕 卿睿
- 651字
- 2021-10-29 12:24:35
5.1 什么是服務治理
簡單地說,服務治理主要解決了兩個問題,一是如何獲取分布式環境中各個服務實例的目標地址,二是如何定時更新服務實例的當前狀態(是否可用或不可用)。只有解決了這兩個問題,各個微服務實例才能利用服務發現機制發起遠程調用。
微服務的本質是分布式架構的延伸,后臺服務被部署在多個分布式服務集群中。以電商中的下單場景為例,一個典型的微服務集群如圖5-1所示。

圖5-1 一個典型的微服務集群
在圖5-1中,訂單服務和商品服務是兩個獨立存在的微服務集群,它們之間存在上下游服務的調用關系。在創建一個用戶訂單的同時,訂單服務會調用商品服務獲取商品的基本信息。調用請求從訂單服務集群中的任意一臺機器發出,為了確保服務請求能夠發送給商品服務,我們需要有一個中心化組件來維護所有微服務的服務器列表,而這個中心化組件可以通過心跳連接等方式感知服務器的運行狀態(狀態可用、不可用)。
基于圖5-1中描述的需求背景,“注冊中心”應運而生,它作為一個獨立的中間件用于維護服務的宿主機信息,包括服務器地址、端口號和服務名稱等。添加了注冊中心的服務集群如圖5-2所示。

圖5-2 添加了注冊中心的服務集群示意圖
如圖5-2所示,注冊中心有以下三個主要任務:
1. 服務注冊
當客戶端啟動服務時,會主動向注冊中心注冊自己的信息,包括地址信息、服務名稱及服務狀態。
2. 服務發現
客戶端服務從注冊中心獲取當前已注冊的機器列表信息,包括地址端口和服務名稱。
3. 維護注冊表
如果某個應用服務器主動下線,或者因為網絡故障等原因無法繼續提供服務,那么注冊中心需要將這臺服務器從可用機器列表中刪除。
推薦閱讀
- DevOps:軟件架構師行動指南
- CentOS 7 Server Deployment Cookbook
- Linux命令行與shell腳本編程大全(第4版)
- Elasticsearch Server(Third Edition)
- 新一代SDN:VMware NSX 網絡原理與實踐
- C#程序設計(項目教學版)
- UNIX Linux程序設計教程
- Illustrator CC平面設計實戰從入門到精通(視頻自學全彩版)
- 鴻蒙OS應用編程實戰
- Android應用開發實戰
- Learning VMware vSphere
- CodeIgniter Web Application Blueprints
- OpenCV Android開發實戰
- 奔跑吧 Linux內核
- Hacking Android