前言
学习记录一下Spark源码中的RPC,本文基于Spark3源码进行学习研究
三个重要的类
RpcEnv、RpcEndpoint、RpcEndpointRef主要是想搞懂这三个之间的关系
子类
Spark 1.6.3中默认使用了Netty作为底层的实现,但Akka的依赖依然存在;而Spark 2.1.0中的底层实现只有Netty,这样用户可以方便的使用不同版本的Akka或者将来某种更好的底层实现
NettyRpcEnv1
2
3
4
5
6private[netty] class NettyRpcEnv(
val conf: SparkConf,
javaSerializerInstance: JavaSerializerInstance,
host: String,
securityManager: SecurityManager,
numUsableCores: Int) extends RpcEnv(conf) with Logging {