写起来比较麻烦,列个大致学习路线。一般的介绍很少涉及为什么,大致就是把怎么做的讲述了一下,这其实忽略很多深层次的内容,错过了更进一步学习的机会。实际上spark rpc和hadoop 1.0时代(现在2.0、3.0估计也差不多)差别很大,主要体现在netty的使用和简化的actor模型,带来高性能的同时,也提高了可维护性。
1、首先学习netty,这个没什么好说的。本身netty也是java网络编程世界的基石。
2、学完netty后看spark rpc,会对rpcenv,endpoint、messageloop和inbox这些概念不清楚。建议结合代码看两个资料:Spark 与 Flink 中的 RPC 实现和为什么需要akka(actor模型)。