天天看点

Apache Flink Stream API之State & Fault Tolerance(章节四)

作者:jiangzz

电话:15652034180

微信:jiangzz_wx

微信公众账号:jiangzz_wy

State & Fault Tolerance

针对于流处理的有状态function和operators可以存储流计算过程中的每个Event的计算状态。状态计算是构建精确操作不会或缺的板块。Flink需要获知计算节点的状态,从而使用checkpoint和savepoint机制实现数据的故障恢复和容错。其中Queryable State允许外部在Flink运行过程中查询数据状态,当用户使用State操作flink提供了state backend机制用于存储状态信息,其中计算状态可以存储在Java的堆内和堆外,这取决于采取的statebackend机制。配置Statebackend不会影响应用的处理逻辑。

State Backends

Flink提供了不同的Sate backend,用于指定状态的存储方式和位置。 根据您的State Backend,State可以位于Java的堆上或堆外。Flink管理应用程序的Sate,这意味着Flink处理内存管理(如果需要可能会溢出到磁盘)以允许应用程序保持非常大的状态。默认情况下,配置文件flink-conf.yaml确定所有Flink作业的状态后端。 但是,可以基于每个作业覆盖默认状态后端,如下所示。

var env = StreamExecutionEnvironment.getExecutionEnvironment();
env.setStateBackend(...);
<
           

继续阅读