一.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
文章来源:http://blog.csdn.net/lin6286878/article/details/52514786