传送门:Flink 系统性学习笔记
任务之间的数据交换策略决定了数据会分发到下游算子的哪个实例上,在 Flink 中有八种不同的策略,也称为分区器:
我们可以看到所有的 Partitioner 都继承了 StreamPartitioner 类。StreamPartitioner 继承自 ChannelSelector 接口。这里的 Channel 概念与 Netty 不同,只是 Flink 对于数据写入实例的简单抽象,我们可以直接认为它就是下游算子的并发实例(即物理分区)。所有 StreamPartitioner 的子类都要实现 selectChannel() 方法,用来选择发送到哪个实