1.Flink 任务之间通信开销 -6
通过网络链接逐条发送,不断低效,还会导致很多额外开销。
在Flink中采用多种技术,下面介绍
基于信用值的流量控制
任务链接
1. 基于信用值的流量控制-工作原理
(1)接收任务会给发送任务授予一定的信用值,其实就是保留用来接收它数据的网络缓冲
(2)一旦发送端接收到信用值,就会在信用值范围内尽可能多的传输数据,并且附带积压量
(3)接收端使用保留的缓冲来处理接收到的数据
(4)依据发送到积压量信息来决定下一轮信用的优先级
(5)信用值是根据各个发送端的积压量来决定的
(6)该机制在出现数据倾斜的时候,有效地分配网络资源
2. 任务链接
(1)目的:在某些情况下降低本地开销
(2)前提条件:多个算子必须有相同的并行度且通过本地转发通道
(3)多个算子的函数被“融合”到同一个任务,在同一个线程内执行
(4)函数之间的记录传输基本上不存在序列化及通讯开销
(5)缺点:有时候需要对过程任务链接进行切分,或者将两个计算量大的函数分配到不同的处理槽中,这个时候就会有问题
(6)任务链接默认是打开的,后面会讲解
读书笔记:《基于ApacheFlink的流处理》
评论