微服務的組件

1、組件間調用關係

先看一張非常經典的圖:
在這裏插入圖片描述
從圖上可以看出,要完成一次調用,有以下步驟:

  1. 服務提供者按照一定的格式的服務描述,向註冊中心註冊服務。聲明自己能夠提供什麼服務,並提供服務的地址。
  2. 服務消費者向註冊中心發起查詢,查詢自己需要調用的服務,獲取服務的地址。
  3. 消費者獲取服務地址後,以約定的通信協議,數據格式向服務提供者,發起調用;調用成功後,服務提供者,以約定的格式返回數據給消費者;消費者在此以約定的格式,解析結構。
  4. 調用過程中,服務的請求耗時、調用量以及成功率都必須記錄下來,用作監控。調用的鏈路信息也被記錄下來用來做故障的定位和服務的跟蹤。服務出錯後需要處理,這就是服務的治理。
    由此可見微服務有以下幾個組件:
    服務提供者, 服務消費者, 註冊中心, 服務監控, 服務跟蹤, 服務治理

2、各組件功能

2.1、 服務提供者

一般,我們將服務提供者稱作服務端。服務端的功能就是提供服務。那麼他要如何提供服務,需要讓調用者明確地址、入參、返回值等信息,這就是服務的描述。目前常見的服務描述有三種:RESTful API, XML和IDL。其中RESTful api應用比較廣泛。

2.2、服務消費者

通常,服務消費者我們稱作客戶端。很簡單哦,顧名思義就是調用服務的服務。服務端將提供的服務通過約定好的描述方式,將服務發佈出去,客戶端通過約定好的描述方式去調用,這個調用之間還有幾個問題要解決:數據傳輸,使用什麼協議,是http還是tcp;數據如何傳輸,同步還是異步,單連接還是多路複用;怎麼壓縮。

2.3、註冊中心

上面那張圖,就是服務註冊及消費的流程圖,常用的組件是zookeeper.

2.4、服務監控

服務消費者與服務提供者之間能夠正常發起服務調用,你就需要對調用情況進行監控,以瞭解服務是否正常。一般我們會收集一些指標,然後展示着監控面板上。

2.5、服務追蹤

a服務調用b服務,b服務調用c服務,這種場景在實際應用中比較常見,當出問題是,我們必須有相應的手段找到問題發生的具體地方,這就是服務追蹤。一般,通過拼Id的方式,跟蹤服務。

2.6、服務治理

服務監控能夠發現問題,服務追蹤能夠定位問題所在,而解決問題就得靠服務治理了。服務治理就是通過一系列的手段來保證在各種意外情況下,服務調用仍然能夠正常進行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章