开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

通讯栈是如何工作的?

通讯栈是如何工作的?

展开
收起
詹姆斯邦德00 2021-11-17 18:00:14 558 0
1 条回答
写回答
取消 提交回答
  • 如图示,这个通讯栈上面确定了一些 event 来提供给开发者进行自己的实现。

    首先,最上面这层是 Source Event,留给开发者自己去定义一些客户化的操作。比如假使现在设计的一个 Source,可能 reader 在某些条件下可能要暂停读取,那么 SplitEnumerator 可以通过这种 Source event 的方式发送给 Source Reader。

    其次,再下面一层分别是叫 Operator Coordinator,算子的协调者。它和真正去执行任务的算子通过 Operator Event 算子事件进行沟通的。我们已经事先定义好了一些算子事件,如添加分片、通知我们的 leader 没有新的分片了等。这些对于所有的 Source 都通用的事件,是在 Operator Event 这一层来进行抽象的。

    Address Lookup 是用来定位消息应该发送给哪一个 Operator 的。因为 Flink整个作业执行起来后会有一个加一个有向无环图的。不同的算子可能运行在不同的Task Manager 上面,那么怎么去找到对应的 task、对应的算子便是这一层的任务。

    由于网络通信的存在,Job Master 和 Task Executor 之间有一个 RPC Gateway。所有的 Event 最终都会通过 RPC Gateway、通过 RPC 调用的方式来进行网络传输。

    22.png

    资料来源:《Apache Flink 必知必会》,下载链接:https://developer.aliyun.com/topic/download?id=1189 

    2021-11-17 18:25:09
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关电子书

更多
如何使用Tair增强数据结构构建丰富在线实时场景 立即下载
Apache Flink 流式应用中状态的数据结构定义升级 立即下载
安全,源于独立 立即下载