天天看點

RPC(Remote Procedure Call Protocol)——遠端過程調用協定

RPC 遠端過程調用協定

RPC(Remote Procedure Call Protocol)——遠端過程調用協定,它是一種通過網絡從遠端計算機程式上請求服務,而不需要了解底層網絡技術的協定。RPC協定假定某些傳輸協定的存在,如TCP或UDP,為通信程式之間攜帶資訊資料。在OSI網絡通信模型中,RPC跨越了傳輸層和應用層。RPC使得開發包括網絡分布式多程式在内的應用程式更加容易。

RPC是系統間的一種通信方式,系統間常用的通信方式還有http,webservice,rpc等,一般來講rpc比http和webservice性能高一些,常見的RPC架構有:Thrift,Finagle,Hessian , dubbo,grpc,json-rpc , CORBA、Java RMI、Web Services、RESTful Web Services等。

主要包含兩個大方面:

1、A系統與B系統之間的連接配接傳輸(如:socket連接配接)

2、序列化與反序列化

簡單的說,RPC就是從一台機器(用戶端)上通過參數傳遞的方式調用另一台機器(伺服器)上的一個函數或方法(可以統稱為服務)并得到傳回的結果。

RPC 會隐藏底層的通訊細節(不需要直接處理Socket通訊或Http通訊)

RPC 是一個請求響應模型。用戶端發起請求,伺服器傳回響應(類似于Http的工作方式)

RPC 在使用形式上像調用本地函數(或方法)一樣去調用遠端的函數(或方法)。

遠端過程調用發展曆程

ONC RPC (開放網絡計算的遠端過程調用),OSF RPC(開放軟體基金會的遠端過程調用)

CORBA(Common Object Request Broker Architecture公共對象請求代理體系結構)

DCOM(分布式元件對象模型),COM+

Java RMI

.NET Remoting

XML-RPC,SOAP,Web Service

PHPRPC,Hessian,JSON-RPC

Microsoft WCF,WebAPI

ZeroC Ice,Thrift,GRPC

Hprose

繼續閱讀