Spark RPC

Spark RPC是spark个模块之间通信的基础,之前采用的事akka模型,在1.6之后基于netty编写了类似于akka的通信框架.

spark RPC涉及到的类图如下

 

RpcEnv是RPC模块中的主要的抽象类,其中定义了RPC调用涉及的主要对象和方法。RpcEnv负责注册维护RpcEndpoint和RpcEndpointRef 


RpcEndPoint:负责消息处理的类,根据收到的消息来决定调用哪个函数,主要包含receive和receiveAndReply两个方法 

RpcEndpintRef:远程RpcEndpoint对应的引用,想对应的RpcEndpoint发送消息 

RpcAddress:维护RPC环境的地址和端口号 

 

RpcCallContext:在RpcEndpoint中使用,RpcEndpoint处理完信息后,调用RpcCallContext返回信息或者错误 
LocalNetty RpcCallContext:当sender和receiver在同一进程中使用 
RemoteNetty RpcCallContext:当sender和receiver不在同一进程中 

posted @ 2018-08-27 19:07  chengwuyouxin  阅读(106)  评论(0编辑  收藏  举报