Java 风暴中的非锚定元组

Java 风暴中的非锚定元组,java,apache-storm,Java,Apache Storm,我有一个基本上是线性的风暴拓扑。中间有一个插销,可能需要时间。有些元组可能会立即得到处理,有些元组则会隐藏在某个地方以备以后使用。它试图不过度利用外部资源 在此之前,我一直在使用BaseCBolt派生的Bolt,这是一个BaseRichBolt子类。因此,它接收到的元组被正确地锚定到整个树上,一直锚定到喷口 我能确认这些元组并从我的螺栓中发出全新的、未编排的元组吗?如果在此之后的螺栓所有BaseCBolt再次发出锚定元组,则重放是否正常工作以及如何进行?是的,您可以发出未锚定元组。但是,无法恢复

我有一个基本上是线性的风暴拓扑。中间有一个插销,可能需要时间。有些元组可能会立即得到处理,有些元组则会隐藏在某个地方以备以后使用。它试图不过度利用外部资源

在此之前,我一直在使用BaseCBolt派生的Bolt,这是一个BaseRichBolt子类。因此,它接收到的元组被正确地锚定到整个树上,一直锚定到喷口


我能确认这些元组并从我的螺栓中发出全新的、未编排的元组吗?如果在此之后的螺栓所有BaseCBolt再次发出锚定元组,则重放是否正常工作以及如何进行?

是的,您可以发出未锚定元组。但是,无法恢复这些元组

如果您确认了一个元组,那么spoute将删除重新计算该输入元组所需的源元组。因此,您无法再恢复此输入元组,因此无法重新计算未编排的结果元组


IMHO,在您的情况下获得容错的唯一方法,是增加消息超时,这样特殊bolt中的长处理元组就不会超时。您发出的元组需要定期锚定到隐藏的输入元组,并且当您将这些输入元组从存储空间中移除时,这些输入元组可以被确认。

对,因此未锚定的元组不会使用顺风螺栓的元组创建新的元组树,即使它们将元组锚定到这个元组?是的。如果将未编排的元组用作锚定,则忽略锚定。