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):讨论如何实现自定义序列化器,特别是对于模式演化。

你可能感兴趣的:(Flink Streaming状态与容错概述)