Flink Streaming状态与容错概述

概述

状态函数(State Function)和操作符可以跨单个元素/事件处理存储数据,State是任何类型操作的关键构建块。

比如:

  1. 当应用程序搜索某些事件模式时,状态(State)会存储到当前时间为止遇到的事件序列。
  2. 每分钟/小时/天维度聚合事件时,状态(State)将保留挂起的聚合。
  3. 在流数据点上训练机器学习模型时,状态(State)保存当前版本的模型参数。
  4. 当需要管理历史数据时,状态(State)可以有效地访问过去发生的事件。

Flink需要通过状态(State)使用检查点保存点对流应用程序状态容错。

Flink应用程序还可以重新扫描和分配状态(State)。

Flink的可查询状态特性允许在程序运行时从Flink外部访问状态。

在处理状态时,获取Flink’s state backends可能也很有用。Flink提供了不同的状态后端(state backend),用于指定状态的存储方式和存储位置。状态(State)也可以存储到Java heap堆外内存(off-heap) 。根据您的状态后端(state backend),Flink还可以管理应用程序的状态(State),Flink可以处理内存管理(如有必要,可能会溢出到磁盘),让应用程序保持非常大的状态(State)。可以在不更改应用程序逻辑的情况下配置状态后端(state backend)

下一步

处理状态(Working with State):如何在Flink应用程序中使用状态,并介绍不同类型的状态。
广播状态模式(The Broadcast State Pattern):介绍如何连接广播流和非广播流,并使用状态在它们之间交换信息。
检查点(Checkpointing):介绍如何启用和配置用于容错的检查点。
可查询状态(Queryable State):介绍如何在运行时从Flink外部访问状态。
状态模式演变(State Schema Evolution):介绍状态类型模式的演变。
管理状态的自定义序列化(Custom Serialization for Managed State):讨论如何实现自定义序列化器,特别是对于模式演化。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容