使用BaseRichBolt时,
之间有什么区别_collector.fail(tuple)
和
_collector.ack(tuple)
它是否像超时一样,因此导致元组被重新发送?或者它只是丢弃元组。如果那么失败方法或使用ack有什么区别?
答案 0 :(得分:3)
ack()
确认一个元组,即告诉Storm一个元组被成功处理。
fail()
未通过元组,即告诉Storm无法成功处理元组,因此Storm将在稍后重新尝试此元组(即,原始源元组将在某些元组重新处理点)。它基本上是一种快速失败的机制 - 如果你不承认其中的元组超时,它也会失败。