首页 > 解决方案 > 失败时flink如何处理打开的事务

问题描述

我使用的是 Flink 1.12.0,我有一个关于 Flink 2PC 机制的端到端一致性保证的问题。

在检查点开始时,会打开一个事务,并在检查点成功完成后提交该事务。

那么如果发生故障怎么办?我认为应该回滚打开的事务?当事务回滚时呢?谢谢。

标签: apache-flink

解决方案


由于 Operator 和 Task Manager 分布在集群内,Flink 必须确保所有组件都同意才能声明提交成功。正如您所说,Flink 使用 2 阶段提交协议,并带有预提交。正如文档中所说,预提交是在检查点期间处理故障的关键

当检查点屏障通过所有操作符并且触发的快照回调完成时,预提交阶段结束。


推荐阅读