Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 以原子方式清除运算符之间的flink状态_Java_Timer_State_Apache Flink - Fatal编程技术网

Java 以原子方式清除运算符之间的flink状态

Java 以原子方式清除运算符之间的flink状态,java,timer,state,apache-flink,Java,Timer,State,Apache Flink,目前,我正在通过我的KeyedProcessFunctions中的ProcessingTimers清除我的运算符的状态。我希望整合此状态清除机制,并以原子方式清除不同运算符之间的状态,因为清除状态的逻辑不仅对于不同运算符非常相似,而且我担心,如果由于某种原因,一个运算符中的状态被清除,而不是在另一方面,在清除状态之前,我检查了onTimer方法中的某些条件,因此仅仅因为调用了onTimer方法,并不一定意味着状态将被清除。到目前为止,我还没有在网上找到这样做的方法。有什么想法吗?为了确保可伸缩性

目前,我正在通过我的
KeyedProcessFunction
s中的
ProcessingTimer
s清除我的运算符的状态。我希望整合此状态清除机制,并以原子方式清除不同运算符之间的状态,因为清除状态的逻辑不仅对于不同运算符非常相似,而且我担心,如果由于某种原因,一个运算符中的状态被清除,而不是在另一方面,在清除状态之前,我检查了
onTimer
方法中的某些条件,因此仅仅因为调用了
onTimer
方法,并不一定意味着状态将被清除。到目前为止,我还没有在网上找到这样做的方法。有什么想法吗?

为了确保可伸缩性,Flink避免提供需要跨集群协调的操作。唯一的例外是在协调检查点和事务(两阶段提交)接收方面,因为这些是健壮的精确保证所必需的

您的问题有点不清楚——当您谈到原子清除不同运算符中的状态时,可能指的是特定有状态运算符的各种并行实例,或者可能指的是多个有状态运算符的所有实例。假设是前者,您可以采取的另一种方法是向操作符的所有实例广播一个信号,指示它们应该做什么。但是每个操作符实例都会独立地处理该消息,所以这种替代方法是否会有很多好处并不明显