Apache Storm:OutputCollector.fail()方法有什么作用?

时间:2017-01-05 16:01:57

标签: java apache-storm

使用BaseRichBolt时,

之间有什么区别
_collector.fail(tuple)

_collector.ack(tuple)

它是否像超时一样,因此导致元组被重新发送?或者它只是丢弃元组。如果那么失败方法或使用ack有什么区别?

1 个答案:

答案 0 :(得分:3)

ack()确认一个元组,即告诉Storm一个元组被成功处理。

fail()未通过元组,即告诉Storm无法成功处理元组,因此Storm将在稍后重新尝试此元组(即,原始源元组将在某些元组重新处理点)。它基本上是一种快速失败的机制 - 如果你不承认其中的元组超时,它也会失败。