RPC協議簡述

2021-08-20 06:20:28 字數 1293 閱讀 2016

rpc是指遠端過程呼叫,也就是說兩台伺服器,乙個應用部署在其中一台伺服器上,想要呼叫另外一台伺服器上應用提供的函式(方法),由於不在乙個記憶體空間,不能直接呼叫,需要通過網路來表達呼叫的語義和傳達呼叫的資料。

rpc 採用客戶機/伺服器模式。請求程式就是乙個客戶機,而服務提供程式就是乙個伺服器。首先,呼叫程序傳送乙個有程序引數的呼叫資訊到服務程序,然後等待應答資訊。在服務端,程序保持睡眠狀態直到呼叫資訊的到達為止。當乙個呼叫資訊到達,伺服器獲得程序引數,計算結果,傳送答覆資訊,然後等待下乙個呼叫資訊,最後,客戶端呼叫過程接收答覆資訊,獲得程序結果,然後呼叫執行繼續進行。

實現兩台伺服器之間的互動,必須得通過通訊協議,rpc的通訊協議實際上是使用tcp/ip協議(可以是按需連線,呼叫結束後就斷掉,也可以是長連線,多個遠端過程呼叫共享同乙個連線),只不過rpc將其進行了封裝處理,只需要呼叫就可以進行連線,不必關心底層,這一點與如今的框架的目的相同(將工作的中心放在了業務流程上)。那麼如何找到目標伺服器!僅僅通過ip是不行的,因為你無法確定目標伺服器是否也同時在為其它端(泛指客戶端,web端,也可以是服務端)提供其它服務,所以,需要乙個標示,也就是埠,其它端就能夠準確無誤的找到自己所需要的程序,並通過程序號,找到目標服務,呼叫其提供的資料。

那麼rpc的安全性如何?tcp/ip通訊協議是基於二進位制的,在記憶體中的引數的值要序列化成二進位制的形式,也就是序列化(serialize)或編組(marshal),通過定址(也就是ip+post)和傳輸將序列化的二進位制傳送,而接收方收到請求後,則需要對引數進行反序列化(序列化的逆操作),恢復為記憶體中的表達方式,然後找到對應的方法進行本地呼叫,然後得到返回值,返回值也需要經過序列化的方式傳送,呼叫方接收到以後,再反序列化,恢復為記憶體中的表達方式……

來自網路

執行時,一次客戶機對伺服器的rpc呼叫,其內部操作大致有如下十步:

1.呼叫客戶端控制代碼;執行傳送引數

2.呼叫本地系統

核心傳送網路訊息 3.

訊息傳送到遠端

主機4.伺服器控制代碼得到訊息並取得引數

5.執行遠端過程

6.執行的過程將結果返回伺服器控制代碼

7.伺服器控制代碼返回結果,呼叫遠端系統

核心8.訊息傳回

本地主機

9.客戶控制代碼由核心接收訊息

10.客戶接收控制代碼返回的資料

使用rpc的優點是,不需要了解底層網路技術的協議,為通訊程式之間攜帶資訊資料。在網路通訊模型中,rpc 跨越了傳輸層和應用層。rpc 使得開發包括網路分布式多程式在內的應用程式更加容易。

RPC協議是什麼?RPC協議與HTTP協議的區別

rpc是一種api,http是一種無狀態的網路協議。rpc可以基於http協議實現,也可以直接在tcp協議上實現。rpc主要是用在大型 裡面,因為大型 裡面系統繁多,業務線複雜,而且效率優勢非常重要的一塊,這個時候rpc的優勢就比較明顯了。http主要是用在中小型企業裡面,業務線沒那麼繁多的情況下。...

網路協議 RPC協議

遠端呼叫協議,用於定義服務之間的介面呼叫規範標準 最早的rpc框架之一 1.2.1 外部資料表示法 xdr 規定互動協議的檔案,包括 與古老的rpc協議相比,雙方的soap協議沒必要完全一致 引數順序 引數個數等 更加靈活 也是乙個xml,描述了方法名 服務名 埠 請求引數等資訊,通過在服務位址後加...

網路協議 RPC協議

微服務與遠端方法呼叫的引入 rpc 指的是 remote procedure call,即遠端方法呼叫 也叫遠端服務呼叫 遠端過程呼叫 這也是微服務架構的前導篇,因為微服務裡面遠端服務之間就是通過 rpc 協議進行資料傳輸的。在介紹 rpc 協議之前,我們先釐清幾個概念 單體應用 微服務應用 本地方...