- 12
- 0
- 约1.71万字
- 约 12页
- 2022-04-11 发布于北京
- 举报
弄清 Flink1.8 的 过程调用(RPC)
2019 年 06 月 01 日 22:51:57 super_wj0820 阅读数 34
:本文为博主 文章, 博主允许不得 。
基于 Flink1.8 版本,分析 Flink 各节点之间的 RPC 实现:
介绍 RPC 相关的主要接口
RPC 节点之间的 式
Flink 老版本处理 Rpc 时,各节点通过继承 FlinkActor 接口,接收 Actor 消息,
根据消息类型进行不同的业务处理。此种方式将流程业务和具体通信组件耦合在
一起,不利于后期更换通信组件(如使用 netty),因此Flink 引入了 RPC 调用,
各节点通过 GateWay 方式回调,隐藏通信组件的细节,实现解耦。
RPC 相关的主要接口
RpcEndpoint
RpcService
RpcGateway
RpcEndpoint: 过程调用(remote procedure
calls) 的基类
RpcEndpoint 是 Flink RPC 终端的基类,所有提供 过程调用的分布式组件
必须扩展 RpcEndpoint, RpcEndpoint 功能由 RpcService 支持。
RpcEndpoint 子类
如上图所示,RpcEndpoint 的子类只有四类组件:Dispatcher,JobMaster ,
ResourceManager,TaskExecutor ,即Flink 中只有这四个组件有RPC的能力,
换句话说只有这四个组件有 RPC 的这个需求。
这也对应了 Flink 这的四大组件:Dispatcher,JobMaster ,ResourceManager,
TaskExecutor ,彼此之间的通信需要依赖RPC 实现。(目前通信组件依然是
Akka)
RpcService:RPC 服务提供者
RpcServer 是 RpcEndpoint 的成员变量,为 RpcService 提供 RPC 服务,连接
Server,其只有一个子类实现:AkkaRpcService ,可见目前Flink 的通信
方式依然是 Akka。
RpcServer 用于启动和连接到 RpcEndpoint, 连接到 rpc 服务器将返回一个
RpcGateway,可用于调用 过程。
Flink 四大组件 Dispatcher,JobMaster ,ResourceManager,TaskExecutor ,
都是 RpcEndpoint 的实现,所以构建四大组件时,同步需要初始化 RpcServer。
如 JobManager 的构造方式,第一个参数就是需要知道 RpcService :
public JobMaster(
RpcService rpcService,
JobMasterConfiguration jobMasterConfiguration,
ResourceID resourceId,
JobGraph jobGraph,
HighAvailabilityServices
highAvailabilityService,
SlotPoolFactory slotPoolFactory,
SchedulerFactory schedulerFactory,
JobManagerSharedServices
jobManagerSharedServices,
HeartbeatServices heartbeatServices,
JobManagerJobMetricGroupFactory
jobMetricGroupFactory,
您可能关注的文档
最近下载
- 2026人教版小学数学三年级上册期末考试精选3套试卷(含答案解析).pdf
- 增城区四年级德育核心素养提升训练 (第17周)测试卷及答案.docx VIP
- 2024年湖北襄阳四中五中自主招生化学试卷真题(答案详解).docx VIP
- 四4班 四年级德育核心素养提升训练(第12周)测试卷及答案.docx VIP
- 二次结构施工方案.docx VIP
- 国际商法--第二章 国际商事组织法.ppt
- 四年级德育素质提升练习3测试卷及答案.docx VIP
- 苏教版最新版数学四年级下册《认识三角形》课件分析.pptx VIP
- 德育优均测练习2测试卷及答案.docx VIP
- 开展树立和践行正确政绩观学习教育集中学习计划(周计划、月计划表)文稿供参考.docx VIP
原创力文档

文档评论(0)