gpt4 book ai didi

apache-flink - Flink 一次性消息处理

转载 作者:行者123 更新时间:2023-12-04 04:12:36 26 4
gpt4 key购买 nike

我已经设置了一个带有 2 个 JobManager 和 3 个 TaskManager 的 Flink 1.2 独立集群,并且我正在使用 JMeter 通过生成随后处理的 Kafka 消息/事件来对其进行负载测试。处理作业在 TaskManager 上运行,通常需要大约 15K 个事件/秒。
该作业已设置 EXACTLY_ONCE 检查点,并将状态和检查点持久化到 Amazon S3。
如果我关闭运行该作业的 TaskManager,则需要几秒钟,然后该作业将在不同的 TaskManager 上恢复。该作业主要记录连续整数(例如从 0 到 1200000)的事件 ID。
当我检查 TaskManager 上的输出时,我关闭了最后一个计数,例如 500000,然后当我检查另一个 TaskManager 上恢复作业的输出时,它以 ~ 400000 开始。这意味着 ~100K 的重复事件。这个数字取决于测试的速度可以更高或更低。
不确定我是否遗漏了什么,但我希望该作业在不同的 TaskManager 上恢复后显示下一个连续数字(如 500001)。
有谁知道为什么会发生这种情况/我必须配置额外的设置才能获得一次?

最佳答案

您将看到预期的行为恰好一次。 Flink 通过结合检查点和在发生故障时重放来实现容错。保证不是每个事件都会被发送到管道中一次,而是每个事件都会影响管道的状态一次。

检查点在整个​​集群中创建一致的快照。在恢复期间,运算符(operator)状态被恢复并且源从最近的检查点重放。

有关更详尽的解释,请参阅此数据工匠博客文章:High-throughput, low-latency, and exactly-once stream processing with Apache Flink™ , 或 the Flink docs .

关于apache-flink - Flink 一次性消息处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43435553/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com