【发布时间】:2017-04-20 04:51:23
【问题描述】:
在 Apache Storm 中,collector.fail 做什么? 它是从源(spout)重放元组还是只是从发出它的最后一个螺栓重放元组? 注意:我没有锚定我的元组,那么在这种情况下会发生什么?
【问题讨论】:
标签: apache-storm
在 Apache Storm 中,collector.fail 做什么? 它是从源(spout)重放元组还是只是从发出它的最后一个螺栓重放元组? 注意:我没有锚定我的元组,那么在这种情况下会发生什么?
【问题讨论】:
标签: apache-storm
正如文档 Guaranteeing Message Processing 中所述,元组将从生成它的 spout 中重放。
通过将输入元组指定为要发出的第一个参数来锚定每个单词元组。由于单词元组是锚定的,如果单词元组下游处理失败,树根的 spout 元组将在稍后重播。相比之下,让我们看看如果像这样发出单词 tuple 会发生什么:
_collector.emit(新值(字)); 以这种方式发出单词 tuple 会导致它被取消锚定。如果下游处理元组失败,则不会重播根元组。根据拓扑中所需的容错保证,有时发出未锚定的元组是合适的。
【讨论】: