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. mysql 如何创建索引

    mysql 如何创建索引 一.总结 一句话总结:MySQL中可以使用alter table这个SQL语句来为表中的字段添加索引. 使用alter table语句来为表中的字段添加索引的基本语法是:AL ...

  2. 英语发音规则---oo

    英语发音规则---oo 一.总结 一句话总结: 1.重读音节词尾的字母组合oo发音素[u:]的音? too [tu:] adv.太;也 zoo [zu:] n.动物园 room [ru:m] n.房间 ...

  3. ibatis的resultClass与resultMap 的区别

    ibatis的resultClass与resultMap还是有很大的区别.以下是我碰到的一个问题. 配置文件写法如下: 1 sqlMap2 typeAlias alias="notice&q ...

  4. node.js定时任务:node-schedule的使用

    安装 npm install node-schedule 使用方法 1:确定时间 例如:2014年2月14日,15:40执行 var schedule = require("node-sch ...

  5. Struts2 - 配置文件详解

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "- ...

  6. 批量修改mysql的表前缀

    如何批量修改mysql的表前缀名称教程中将涉及两种方法修改,一种是批量修改(使用php脚步完成)一种是精确修改(使用sql查询语句完成). 方法一:使用sql语句修改mysql数据库表前缀名 首先我们 ...

  7. 查看字符串的编码chardet

    The Universal Character Encoding Detector chardet.detect("str") 返回:{‘confidence’:1.0,'enco ...

  8. [CJOJ2425][SYZOI Round1]滑稽的树

    cjoj sol 子树转化成dfs序上的区间. 所以就变成了:区间Kth,区间内[a,b]范围内的数有多少个,单点修改 裸的树套树啊. code #include<cstdio> #inc ...

  9. ACM学习历程—UESTC 1218 Pick The Sticks(动态规划)(2015CCPC D)

    题目链接:http://acm.uestc.edu.cn/#/problem/show/1218 题目大意就是求n根木棒能不能放进一个容器里,乍一看像01背包,但是容器的两端可以溢出容器,只要两端的木 ...

  10. 安装ORACLE时在Linux上设置内核参数的含义

    前两天看到一篇Redhat官方的Oracle安装文档,对于Linux内核参数的修改描述的非常清晰. 安装Oracle之前,除了检查操作系统的硬件和软件是否满足安装需要之外,一个重点就是修改内核参数,其 ...