Spark 中 RPC 部分的涉及了几个类,有点晕,在此记录一下

1. RpcEndpoint: RPC的一个端点。给定了相应消息的触发函数。保证  `onStart`, `receive` and `onStop` 函数按顺序触发。

2. RpcEndpointRef: 一个远程的 RpcEndpoint

3. RpcEnv: RPC的环境。 RpcEndpoint 需要用一个名字在 RpcEnv 进行注册用于接收消息。RpcEnv 将处理从 RpcEndpointRef 或远程发来的消息,然后发送给相应的 RpcEndpoint 。

4. RpcAddress : 用主机+端口表示的一个 Rpc 地址。

5. Dispatcher: 消息收发者, 负责把消息路由给相应的 RPC 端点。

6. RpcEndpointVerifier : 验证 RpcEnv 中某个 RpcEndpoint 是否存在的 RpcEndpoint。

7. Inbox : 为一个 RpcEndpoint 存储消息并发送给这个 RpcEndpoint 的信箱

8. NettyRpcHandler: 把收到的 Rpc 消息分发给在 RpcEnv 注册过的 RpcEndpoint(通过 Dispatcher)。会保持所有与之通信的客户端。此类 NettyRpcEnv.scala 中。

9. TransportServer:高效的、底层流服务。此类中会真正启动 Netty 的服务端

10. TransportContext:包含了用于创建 TransportServer 和 TransportClientFactory的上下文,并且用于设置 Netty 的 Channel pipelines。

11. TransportRequestHandler: 注册在 Netty channel 上的  handler。处理从客户端发来的请求。

12. TransportResponseHandler: 注册在 Netty channel 上的 handler。处理从服务端返回的消息。

Spark 中的 RPC 的几个类的更多相关文章

  1. Spark中经常使用工具类Utils的简明介绍

    <深入理解Spark:核心思想与源代码分析>一书前言的内容请看链接<深入理解SPARK:核心思想与源代码分析>一书正式出版上市 <深入理解Spark:核心思想与源代码分析 ...

  2. Spark中常用工具类Utils的简明介绍

    <深入理解Spark:核心思想与源码分析>一书前言的内容请看链接<深入理解SPARK:核心思想与源码分析>一书正式出版上市 <深入理解Spark:核心思想与源码分析> ...

  3. 【原】Spark中Client源码分析(二)

    继续前一篇的内容.前一篇内容为: Spark中Client源码分析(一)http://www.cnblogs.com/yourarebest/p/5313006.html DriverClient中的 ...

  4. spark 源码分析之五 -- Spark内置RPC机制剖析之一创建NettyRpcEnv

    在前面源码剖析介绍中,spark 源码分析之二 -- SparkContext 的初始化过程 中的SparkEnv和 spark 源码分析之四 -- TaskScheduler的创建和启动过程 中的C ...

  5. Scala 深入浅出实战经典 第65讲:Scala中隐式转换内幕揭秘、最佳实践及其在Spark中的应用源码解析

    王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...

  6. Scala 深入浅出实战经典 第51讲:Scala中链式调用风格的实现代码实战及其在Spark中应用

    王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...

  7. Spark中的编程模型

    1. Spark中的基本概念 Application:基于Spark的用户程序,包含了一个driver program和集群中多个executor. Driver Program:运行Applicat ...

  8. Spark小课堂Week7 从Spark中一个例子看面向对象设计

    Spark小课堂Week7 从Spark中一个例子看面向对象设计 今天我们讨论了个问题,来设计一个Spark中的常用功能. 功能描述:数据源是一切处理的源头,这次要实现下加载数据源的方法load() ...

  9. Spark中shuffle的触发和调度

    Spark中的shuffle是在干嘛? Shuffle在Spark中即是把父RDD中的KV对按照Key重新分区,从而得到一个新的RDD.也就是说原本同属于父RDD同一个分区的数据需要进入到子RDD的不 ...

随机推荐

  1. 分享知识-快乐自己:Java中各种集合特点

    Java中各种集合特点: Collection[单列集合]: List(有序,可重复): ArrayList: 底层数据结构是数组,查询快,增删慢.线程不安全,效率高. Vector: 底层数据结构是 ...

  2. python习题-注册用户程序

    把上周的注册程序改一下,用字典保存# 字典格式如下:# {# "niuhanyang":{"passwd":"123456","r ...

  3. rtmp与hls流媒体服务器搭建:ubuntu下Nginx搭建初探与rtmp-module的添加

    关键词:Nignx(http服务器):rtmp,hls(流媒体服务) 前言:感谢开源,感谢战斗民族.现在在做流媒体服务的一些工作,流媒体服务器搭建的网上教程多入牛毛,但是细细查看,发现很多同志贴上来的 ...

  4. 2017-2018-1 20179203 《Linux内核原理与分析》第三周作业

    攥写人:李鹏举 学号:20179203 ( 原创作品转载请注明出处) ( 学习课程:<Linux内核分析>MOOC课程http://mooc.study.163.com/course/US ...

  5. Unity Webplayer installation error- Unity Webplayer update finished, but installed..

    https://forum.unity3d.com/threads/unity-webplayer-installation-error-unity-webplayer-update-finished ...

  6. tcpdump示例

    今天有需求要用tcpdump,给一个我使用的例子: sudo /usr/sbin/tcpdump  dst 10.20.137.24 and tcp port 8080 -A -s0  -w nous ...

  7. CF1060B:Maximum Sum of Digits

    我对贪心的理解:https://www.cnblogs.com/AKMer/p/9776293.html 题目传送门:http://codeforces.com/problemset/problem/ ...

  8. python中http请求中添加cookie支持

    python3中构造http的Request需要用到urllib.request. 有时会用到cookie. 比如在访问网站首页得到cookie,通过下面代码添加cookie:      #insta ...

  9. MyEclipse 手动安装Velocity 编辑器

    最近项目有使用Velocity 模板引擎,从而会用到*.VM页面!Myeclipse打开VM页面字体一片漆黑,哪有JSP那样看起来舒服(个人感觉)!为了解决这一问题就要安装Velocity编辑器,安装 ...

  10. MODBUS TCP和MODBUS RTU的差别

    TCP和RTU协议非常类似, MBAP Header长度共7个字节,分别为Transaction identifier(事务标识符),Protocol identifier(协议标识符),Length ...