Hadoop RPC 机制和流程和实现
什么是RPCRPC(Remote Procedure Call) 远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术。RPC假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。
RPC使得开发包括网络分布式程序在内的应用程序更加容易
Hadoop 中的RPC
RPC 分为 Server & Client 两种角色。Server 提供方法调用,Client通过网络来调用Server端的方法,处理返回的数据。
RPC Server 分为以下几种对象
结构
功能
Server.Listener
RPC Server的监听者,用来接收RPC Client的连接请求和数据,其中数据封装成Call后PUSH到Call队列。
Server.Handler
RPC Server的Call处理者,和Server.Listener通过Call队列交互。
Server.Responder
RPC Server的响应者。Server.Handler按照异步非阻塞的方式向RPC Client发送响应,如果有未发送出的数据,交由Server.Responder来完成。
Server.Connection
对Client的连接的存储,有客户端的IP端口,调用的服务器端的方法,参数。
Server.Call
持有客户端的Call信息。
RPC Client 分为以下几种对象
结构
功能
Client.ConnectionId
到RPC Server对象连接的信息存储器。
Client.Call
Call调用信息。
Client.ParallelResults
来自服务器端对方法调用的响应。
RPC.Invoker
对InvocationHandler的实现,提供invoke方法,实现RPC Client对RPC Server对象的调用。
RPC.Invocation
用来序列化和反序列化RPC Client的调用信息。(主要应用JAVA的反射机制和InputStream/OutputStream)
页:
[1]