有状态的函数和算子在处理单个元素/事件时存储数据,使得状态state成为任何精细操作的关键构件。
例如:
Flink 需要了解状态,以便使用检查点进行状态容错,并允许流应用程序使用保存点。
对状态进行了解有助于你对 Flink 应用程序进行扩展,这意味着 Flink 负责在并行实例之间进行重新分配状态。
Flink 的可查询状态queryable state功能允许你在 Flink 运行时在外部访问状态。
在使用状态时,阅读有关Flink的 State Backends 应该对你很有帮助。Flink 提供不同的 State Backends,并指定状态的存储方式和位置。状态可以位于Java的堆内或堆外。根据你的 State Backends,Flink也可以管理应用程序的状态,这意味着Flink进行内存管理(可能会溢写到磁盘,如果有必要),以允许应用程序保持非常大的状态。State Backends可以在不更改应用程序逻辑的情况下进行配置。
Flink应用程序中使用状态,并解释不同类型的状态。Flink运行时从外部访问状态。Managed State自定义序列化:讨论为状态自定义序列化逻辑及其升级。原文:https://ci.apache.org/projects/flink/flink-docs-release-1.4/dev/stream/state/index.html