通讯栈是如何工作的?

通讯栈是如何工作的?

展开
收起
詹姆斯邦德00 2021-11-17 18:00:14 596 分享 版权
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 集群和引擎,提高作业开发运维效率。

收录在圈子:
实时计算 Flink 版(Alibaba Cloud Realtime Compute for Apache Flink,Powered by Ververica)是阿里云基于 Apache Flink 构建的企业级、高性能实时大数据处理系统,由 Apache Flink 创始团队官方出品,拥有全球统一商业化品牌,完全兼容开源 Flink API,提供丰富的企业级增值功能。
还有其他疑问?
咨询AI助理