如果两个操作员正在处理同一个上游,那么每个操作员是接收每个元素的副本还是处理同一个元素。例如,在以下代码中:
DataStream<Data> stream=...; //init a stream of data
stream.process(ProcessFunctionA); //stream was processed by function A
stream.process(ProcessFunctionB); //stream was processed by function A
如果processfunctiona更改了数据,processfunctionb会看到这些更改吗?
1条答案
按热度按时间vngu2lb81#
默认情况下,flink会在这种情况下复制防御副本。但如果您了解这样做可能存在的陷阱,您可以使用
启用对象重用,这可能是一个有用的优化,因为它避免了不必要的副本及其最终的垃圾收集。
请参阅flink,rule of using“object reuse mode”,了解有关如何安全使用该模式的一些指导。