Java 弗林克,使用规则';对象重用模式';
Doc说这种模式会导致bug,但它没有告诉我使用这种模式的规则,在什么情况下会导致bug?比如说我有份工作Java 弗林克,使用规则';对象重用模式';,java,apache-flink,Java,Apache Flink,Doc说这种模式会导致bug,但它没有告诉我使用这种模式的规则,在什么情况下会导致bug?比如说我有份工作 来源:卡夫卡(字节[]数据) 平面映射:将字节[]解析为Google Protobuf对象“foo”,创建一个Tuple2(foo.id,foo),并返回这个Tuple2 keyby和process:对于每个id,将第一个foo放入ValueState,如果有多个具有相同id的对象,则更新ValueState。10秒后发出第一个foo(更新) 在这种情况下,可以打开“对象重用模式”吗?对于
在这种情况下,可以打开“对象重用模式”吗?对于您描述的管道,可以安全地启用对象重用 对象重用仅适用于在同一任务中的运算符实例之间转发数据的情况——在您的情况下,就是在源和flatmap之间。keyBy强制进行ser/de和网络洗牌,因此不能在flatmap和process函数之间使用对象重用。但对象重用可能也适用于流程函数和接收器之间(我假设存在) 启用对象重用后,是否安全地
- 记住跨函数调用或
- 修改输入对象
- 修改输出对象并再次发射它