【发布时间】:2020-02-10 03:40:19
【问题描述】:
我无法理解 Apache Flink 中状态的使用。据我了解,状态在 Flink 程序执行期间维护变量值。我认为同样的事情可以通过类变量来实现。
例如,如果我在某个 Map 函数中声明了一个类变量“someCounter”并增加它的值,那么在代码执行过程中会保留“someCounter”的值,那么为什么我们需要一个昂贵的状态来维护此链接示例中提到的类似值:https://ci.apache.org/projects/flink/flink-docs-stable/dev/stream/state/state.html#tab_java_0?
static class abc extends RichMapFunction<X,Y> {
long someCounter = 0;
//ctor
public abc() {};
@Override
public Y map(X x) throws Exception {
someCounter++;
if(someCounter > 1000)
someCounter = 0;
return someCounter;
}
}
【问题讨论】:
标签: java variables streaming state apache-flink