天天看點

微服務的服務治理、服務調用、服務網關、服務容錯、鍊路追蹤

  接觸微服務,我們一定會有這樣的幾個問題:微服務如何管理?如何調用?如何通路?如何容錯?如何排錯?帶着這些問題,我們來看一下微服務的架構設計。

一、服務治理

  服務治理就是進行服務的自動化管理,其核心是服務的自動注冊與發現。

  服務注冊就是服務執行個體将自身服務資訊注冊到注冊中心。

  服務發現就是服務執行個體通過注冊中心,擷取服務執行個體的資訊,通過這些資訊去請求他們提供的服務。

  服務剔除就是服務注冊中心将出問題的服務自動剔除到可用清單之外,使其不會被調用。

二、服務調用

  在微服務架構中,通常存在多個服務之間的遠端調用請求。目前主流的遠端調用技術有基于http的restful接口以及基于tcp的rpc協定。

  rest(representational state transfer)是一種http的調用格式,更标準,更通用。

  rpc(remote promote call)一種程序間通信方式,允許像調用本地服務一樣調用遠端服務。rpc架構的主要目标就是讓遠端服務調用更簡單、透明。rpc架構負責屏蔽底層的傳輸方式、序列化方式和通信細節。開發人員在使用的時候隻需要了解誰在什麼位置提供了什麼樣的遠端服務接口即可,并不需要關心通信細節和調用過程。

差別與聯系

微服務的服務治理、服務調用、服務網關、服務容錯、鍊路追蹤

 三、服務網關

  随着微服務的不斷增多,不同的微服務一般會有不同的網絡位址,而外部用戶端可能需要調用多個服務的接口才能完成一個業務需求。

  如果讓用戶端直接與各個微服務通信,可能會出現很多問題:用戶端需要調用不同的url位址,增加難度;在一定場景下存在跨域請求問題;每個微服務都需要進行單獨的身份認證。

  針對上述問題,api網關順勢而生。api網關就是将所有api調用統一接入到api網關層,由網關統一接入和輸出。一個網關的基本功能有:統一接入、安全防護、協定适配、流量管控、長短鍊支援、容錯能力。有了網關之後,各個api服務提供團隊可以專注自己的業務邏輯處理,而api網關更專注于安全、流量、路由等問題。

微服務的服務治理、服務調用、服務網關、服務容錯、鍊路追蹤

四、服務容錯

  在微服務中,一個請求經常會涉及到調用幾個服務,如果其中某個服務不可用,沒有做服務容錯的話,極有可能會造成過一連串的服務不可用,這就是雪崩效應。

  我們無法預防雪崩效應的發生,隻能盡可能去做好服務容錯,服務容錯的三個核心思想是:不被外界環境影響,不被上遊請求壓垮,不被下遊響應壓垮。

微服務的服務治理、服務調用、服務網關、服務容錯、鍊路追蹤

五、鍊路追蹤

  随着微服務架構的流行,服務按照不同的次元進行拆分,一次請求往往要涉及多個服務。網際網路應用建構在不同軟體子產品集上,這些軟體子產品,由可能是不同的團隊開發、可能使用不同的程式設計語言來實作、有可能布在了幾千台伺服器,橫跨多個不同的資料中心。是以,就需要對一次請求涉及多個服務鍊路進行日志記錄,性能監控即鍊路追蹤。

微服務的服務治理、服務調用、服務網關、服務容錯、鍊路追蹤

繼續閱讀