RPC理論-分佈式系統開發技術

RPC(Reomte Procedure Call Protocol)

      遠程過程調用協議,一種通過網絡從遠程計算機上請求服務,而不需要了解底層網絡技術的協議。RPC協議假定某些傳輸協議的存在,如 TPC或UDP,爲通信程序之間攜帶信息數據。在OSI網絡通信模型中,RPC跨越了傳輸層和應用層。RPC在使得開發包括網絡分佈式多程序在內的應用程序更加容易。

RPC採用Client-Server結構,通過request-response消息模式實現。

RPC三個過程

  •  通訊協議
  • 尋址  互聯網IP
  • 數據序列化

RPC用途

  • 服務化/微服務
  • 分佈式系統架構
  • 服務可重用
  • 系統間交互調用

RPC特性以及適用場景

特點:同步調用,對於要等待返回結果的場景,RPC可以非常自然直覺的使用(RPC也可以是異步調用)。

由於等待結果,Consumer會有線程消耗。如果以異步RPC的方式使用,Consumer線程消耗可以去掉。不能暫存請求,

壓力會直接傳導到服務Provider。

 

 

 

RPC的流程

  1. 客戶端處理過程中調用Client sub,傳入參數。
  2. Client sub將參數編組爲消息,然後通過系統調用向服務端發送信息。
  3. 客戶端本地操作系統將消息從客戶端機器發送到服務端機器。
  4. 服務端操作系統將接收的數據包傳給Server stub。
  5. Server stub解組消息爲參數。
  6. Server stub再調用服務端的過程,過程執行結果以反方向的相同步驟響應給客戶端。

    stub(存根):分佈式計算中的存根是一段代碼,它轉換在遠程調用期間Client和Server之間的參數。

RPC流程中需要處理的問題

  1. Client stub、Server stub的開發
  2. 參數如何編組爲消息,以及解組信息
  3. 消息如何發送
  4. 過程結果如何表示,異常情況如何處理
  5. 如何實現安全的訪問控制

RPC協議

  調用過程中需要將參數編組爲消息發送,接收方接收到消息進行解組消息參數,過程處理結果同樣需要編組,解組。消息由哪些構成以及消息的表示形式就構成了協議。

協議的請求,響應消息的格式。

RPC框架基本定義

封裝好了參數編組、消息解組、底層網絡通信的RPC程序開發框架,讓我們直接在基礎上只需要專注於我們的過程代碼編寫。

常用RPC框架

Webservice:Apache XFC, Apache Axis2,Java自帶的JAX-WS.

微服務:dubbo,spingCloud,Apache Thrift,ICE,GRPC等等

RPC框架核心功能要點

  1. 服務的暴露   根據IDL生成,共享接口
  2. 遠程代理對象  JDK代理、字節碼生成
  3. 通信 協議(TCP\HTTP)、消息ID、IO、連接、心跳
  4. 序列化  序列化方式、元數據、編碼內容

 

 

 

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