Flink FORWARD 连接的运算符之间的数据序列化内部

Data serialization internals between Flink FORWARD-connected operators

据我了解,可以链接由数据转发连接连接的运算符。如果它们被链接在一起,则它们之间只会发生防御性副本(默认情况下)。

鉴于此执行图:

链式运算符始终显示为一项任务。因此,所有由 -> 分隔的运算符都链接在您的来源中。

动态部分没有链接,因为它有多个输入。虽然 Flink 支持多输入链运算符,但在 DataStream API 中实现起来并不推荐。 Table API/SQL 将使用该机制自动将所有内容合并到一个任务中。 [1]

对于非链式前向通道,数据通过本地网络通道发送。所以它被序列化并分成缓冲区,但它没有访问网络接口。

[1] https://developpaper.com/flink-sql-performance-optimization-multiple-input/