rpc(remote procedure call protocol)——遠端過程呼叫協議,它是一種通過網路從遠端電腦程式上請求服務,而不需要了解底層網路技術的協議。rpc協議假定某些傳輸協議的存在,如tcp或udp,為通訊程式之間攜帶資訊資料。在osi網路通訊模型中,rpc跨越了傳輸層和應用層。rpc使得開發包括網路分布式多程式在內的應用程式更加容易。
rpc採用客戶機/伺服器模式。請求程式就是乙個客戶機,而服務提供程式就是乙個伺服器。首先,客戶機呼叫程序傳送乙個有程序引數的呼叫資訊到服務程序,然後等待應答資訊。在伺服器端,程序保持睡眠狀態直到呼叫資訊到達為止。當乙個呼叫資訊到達,伺服器獲得程序引數,計算結果,傳送答覆資訊,然後等待下乙個呼叫資訊,最後,客戶端呼叫程序接收答覆資訊,獲得程序結果,然後呼叫執行繼續進行。
通俗的說:客戶端在不知道呼叫細節的情況下,呼叫存在於遠端計算機上的某個過程或函式,就像呼叫本地應用程式中的一樣。
rpc是協議:協議意味著規範。目前典型的rpc實現包括dubbo、thrift、hetty等。但這些實現往往都會附加其他重要功能,例如dubbo還包括了服務管理,訪問許可權管理等功能。
網路協議和網路io模型對其透明:既然rpc的客戶端認為自己是在呼叫本地物件,那麼傳輸層使用的是tcp/udp還是http協議,又或是一些其他的網路協議它就不需要關心了。既然網路協議對其透明,那麼呼叫過程中,使用的是哪乙個網路io模型呼叫者也不需要關心。
資訊格式對其透明:遠端呼叫過程中,需要傳遞一些引數,並且會返回乙個呼叫結果。至於這些引數會以某種資訊格式傳遞給網路上的另一台計算機,這個資訊格式是怎樣構成的,呼叫方式不需要關心的。
跨語言能力:對於呼叫方來說,不知道也無需知道遠端的程式使用的是什麼語言執行的,無論伺服器方使用的是什麼語言,本次呼叫都應該成功,並且返回值也應該按照呼叫方程式語言所能理解的形式進行描述。
執行時,一次客戶機對伺服器的rpc呼叫,其內部操作大致有如下十步:
1.呼叫客戶端控制代碼;執行傳送引數
2.呼叫本地系統核心傳送網路訊息
3.訊息傳送到遠端主機
4.伺服器控制代碼得到訊息並取得引數
5.執行遠端過程
6.執行的過程將結果返回伺服器控制代碼
7.伺服器控制代碼返回結果,呼叫遠端系統核心
8.訊息傳回本地主機
9.客戶控制代碼由核心接收訊息
10.客戶接收控制代碼返回的資料
RPC 遠端過程呼叫協議
remote procedure call 1 rpc 遠端過程呼叫協議,它是一種通過網路從遠端電腦程式上請求服務,而不需要了解底層網路技術的協議。rpc協議假定某些傳輸協議的存在,如tcp或udp,為通訊程式之間攜帶資訊資料。在osi網路通訊模型中,rpc跨越了傳輸層和應用層。rpc使得開發包括網...
RPC 遠端過程呼叫協議
rpc remote procedure call 遠端過程呼叫,它是一種通過網路從遠端電腦程式上請求服務,而不需要了解底層網路技術的協議。rpc協議假定某些傳輸協議的存在,如tcp或udp,為通訊程式之間攜帶資訊資料。在osi網路通訊模型中,rpc跨越了傳輸層和應用層。rpc使得開發包括網路分布式...
遠端過程呼叫協議(RPC)
rpc remote procedure call protocol 遠端過程呼叫協議,它是一種通過網路從遠端電腦程式上請求服務,而不需要了解底層網路技術的協議。rpc協議假定某些傳輸協議的存在,如tcp或udp,為通訊程式之間攜帶資訊資料。在osi網路通訊模型中,rpc跨越了傳輸層和應用層。rpc...