首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache容错

Apache容错
EN

Stack Overflow用户
提问于 2020-02-01 11:43:42
回答 1查看 354关注 0票数 1

Apache提供了一种容错机制,用于始终恢复数据流应用程序的状态。该机制确保即使在出现故障时,程序的状态最终也会准确地反映数据流中的每条记录一次。

我需要理解以下链接中的答案:Flink -一次消息处理

这是否意味着Flink Sink会产生重复事件到外部系统,如Cassandra?

例如:

1-我有以下流程:具有状态->接收器的源-> flatMap,以及配置为20秒的快照间隔。

如果任务管理器在两个快照之间(在10秒后形成最后一个快照,而在下一个快照之前10秒)之间下降(死亡),会发生什么情况。

我所知道的是Flink将从上一个快照重新启动作业。

在这种情况下,Sink将重新处理在上一次快照和停机时间之间已经处理的所有记录?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-02 16:12:22

在您所描述的场景中,Flink接收器确实会重新处理上次快照后发送给它的记录。

但这并不一定意味着连接到接收器的外部数据存储(例如数据库、文件系统或消息队列)最终会持久化这些重复项。如果接收器支持事务,或者数据是以幂等方式编写的,Flink可以提供我们有时所称的“精确地一次端到端”的保证。

Flink的Kafka生产者和StreamingFileSink是可以利用事务来避免产生重复(或不一致)结果的接收器的例子。

卡桑德拉的情况稍微复杂一些-- 见文件 --而且如果您使用幂等查询,Flink只能提供精确的一次语义。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60016537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档