知识卡片
算子链如何减少线程切换开销
内容
算子链是把至少两个连续且满足特定条件的算子串联成一个整体操作:它们处于同一分区,彼此之间可以直接传递数据,不需要经过序列化/反序列化或网络传输。这样做的收益是减少了线程间切换的开销、提升吞吐量并降低延迟——因为多个算子的计算被压缩进同一个线程连续执行,而不是每个算子单独占一个线程、数据在线程间来回搬运。这体现了一个通用的分布式计算优化思路:能在本地完成的计算尽量本地完成,跨线程/跨网络的协调本身就是成本,只有在数据确实需要重新分区(比如keyBy之后)时才值得付出这个代价。
参考来源
《Flink入门与实战》第2章《定义、架构与原理》