我有一个拓扑与单喷口和3螺栓(a,b,c)。
螺栓a接收来自喷口的元组,并通过确认它来发出新的值。
螺栓b和螺栓c消耗螺栓a的元组,但螺栓b和c之间没有连接。你可以说是两个独立的螺栓。
如果螺栓b失败,螺栓c成功确认元组,storm会一次又一次地重放同一元组给螺栓c吗?
我想确保两个都成功,如果不是元组应该只去失败的螺栓,而不是成功的一个。我怎样才能做到这一点。
我试图通过模仿tuple来观察bolt b中的fail和c中的success,但storm将tuple重放到了所有bolt中。
我有一个拓扑与单喷口和3螺栓(a,b,c)。
螺栓a接收来自喷口的元组,并通过确认它来发出新的值。
螺栓b和螺栓c消耗螺栓a的元组,但螺栓b和c之间没有连接。你可以说是两个独立的螺栓。
如果螺栓b失败,螺栓c成功确认元组,storm会一次又一次地重放同一元组给螺栓c吗?
我想确保两个都成功,如果不是元组应该只去失败的螺栓,而不是成功的一个。我怎样才能做到这一点。
我试图通过模仿tuple来观察bolt b中的fail和c中的success,但storm将tuple重放到了所有bolt中。
1条答案
按热度按时间zfycwa2u1#
如果只有b ack而不是c,则在喷口处重放原始源元组。因此,b将第二次得到已经确认的元组。这称为至少一次处理,也就是说,您可能会得到重复的处理。
如果你想得到exaclty一旦你可以使用风暴的tridentapi(所谓的事务拓扑)。有关更多详细信息,请参阅storm文档。