我对Storm Bolt执行方法的理解是 - (假设只有一个任务和三个元组)
我的理解是对的吗?
答案 0 :(得分:1)
基本上是的。
但是,如果第一个元组失败,则不会“重新回到队列”,但会执行对Spout.fail(Object msgId)
的回调(对于第一个元组的所有“父元组”。此时,Spout将会重新发出所有父元组。因此,元组将被传递给execute()
时的确切顺序是不可预测的。
当然,您的Spout必须是所谓的可靠Spout,即必须可靠地存储所有数据,以便它可以重新发出所有失败的元组。许多提供的Spouts是可靠的。
有关详细信息,请查看Storm文档:https://storm.apache.org/releases/1.0.1/Guaranteeing-message-processing.html