Hadoop RPC源码学习分享
一、RPC框架简介
RPC(Remote Procedure Call Protocol,远程过程调用协议)是一种通过网络调用远程计算机服务的协议(分布式进程方法调用)。RPC基于TCP/UDP传递和响应RPC请求,允许一台计算机程序远程调用另一台计算机的子程序,对用户透明。
RPC采用客户端/服务端模式,客户端发送一个带参数的调用请求到服务器,然后等待服务器发回响应信息。RPC框架结构如下:
- 通信模块(Sockets):传输RPC请求和响应的网络通信模块,可以基于TCP或UDP协议,可以是同步或异步的。
- 客户端stub程序:底层调用请求和参数序列化并通过通信模块发送给服务端,在收到服务端的响应信息后反序列化并返回给请求程序(Client Functions)。
- 服务端stub程序:服务端stub程序会将客户端发送的调用请求和参数反序列化,根据调用信息触发对应服务程序,然后将处理后的响应结果序列化发送给客户端。<