ApacheStorm中何时调用喷口中的“ack”方法?

j91ykkif  于 2021-06-24  发布在  Storm
关注(0)|答案(1)|浏览(313)

我有一个用两个螺栓处理文档的拓扑结构。我需要能够在一个文档被完全处理/通过整个拓扑之后修改存储在喷口中的数据结构。在进一步了解apachestorm之前,我认为在spout中实现的'ack'方法只在拓扑的末尾被调用。我现在明白了,在每一个螺栓中都需要调用“ack”,我很困惑。
本质上,如果我把自定义代码放在喷口的“ack”方法中:它什么时候执行?每次在一个bolt中调用'ack'方法时,或者当一个元组树的整个元组都被ack/每次输出一个元组一次?

vltsax25

vltsax251#

只有在元组被下游的所有螺栓确认之后,才调用spout中的ack方法,而不是之前。看这里。这意味着您的代码将在整个元组树中的元组被确认时执行。

相关问题