在apache storm中,collector.fail做了什么? 它是否从源(spout)重放元组,或者它只是从发出它的最后一个螺栓重放元组? 注意:我没有锚定我的元组,所以在那种情况下会发生什么?
答案 0 :(得分:2)
作为文档Guaranteeing Message Processing中的状态,元组将从生成元组的spout中重放。
通过将输入元组指定为要发出的第一个参数来锚定每个单词元组。由于单词元组被锚定,如果单词元组未能在下游处理,则稍后将重放树根处的spout元组。相反,让我们来看看如果像这样发出单词元组会发生什么:
_collector.emit(new Values(word)); 以这种方式发出单词元组会使其无法解析。如果在下游处理元组失败,则不会重放根元组。根据拓扑中所需的容错保证,有时发布未锚定的元组是合适的。