1、什么是RPC
RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。
RPC采用客户机/服务器(c/s)模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。
2、OSI网络七层模型
在说RPC和HTTP的区别之前,我觉的有必要了解一下OSI的七层网络结构模型,它可以分为以下几层(自下而上):
第一层:物理层。这一层主要就是传输这些二进制数据。
第二层:链路层。将上面的网络层的数据包封装成数据帧,便于物理层传输;
第三层:网络层。定义网络设备间如何传输数据;
第四层:传输层。管理着网络中的端到端的数据传输;
第五层:会话层。管理用户的会话,控制用户间逻辑连接的建立和中断;
第六层:表示层。定义不同的系统中数据的传输格式,编码和解码规范等;
第七层:应用层。定义了用于在网络中进行通信和传输数据的接口;
3、RPC调用流程
简单地说一下,一个完整的RPC架构里面包含了四个核心的组件,分别是Client ,Server,Client Stub以及Server Stub
1、 客户端(RPC