gpt4 book ai didi

apache-storm - 使用 KafkaSpout,确认一个元组两次会导致超时?

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

我的拓扑结构使用默认的 KafkaSpout 实现。在一些非常受控的测试中,我注意到 spout 失败了元组,即使我的 bolt 都没有失败任何元组,而且我确信所有消息都在我配置的超时内得到了很好的处理。

我还注意到(由于我的 bolt 有一些子类结构),我的一个 bolt 两次确认元组。当我解决这个问题时,喷口停止失败的元组。

抱歉,这不仅仅是一个健全性检查,而不是一个问题,但这有意义吗?我不明白为什么两次确认同一个元组实例会导致 Spout 注册超时,但它似乎是我的情况?

最佳答案

确实有道理。

Storm 以一种奇怪但有效的方式跟踪 spout 发出的元组的所有确认(直接和间接)。我不确定确切的算法,但它需要反复对最初由 spout 发出的元组 ID 与后续锚定元组 ID 的 ID 进行异或运算。每个后续 ID 都经过两次异或运算——一次是在元组被锚定时,一次是在元组被确认时。当 XOR 的结果全为零时,则假设每个 anchor 都与一个 ack 匹配,并且原始 spout-emitted 元组已完成处理。

通过不止一次确认某些元组,您使一些 spout 发出的元组看起来似乎没有完全完成(因为奇数个 XOR 永远不会归零)。

关于apache-storm - 使用 KafkaSpout,确认一个元组两次会导致超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33466499/

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