Storm 可以重播 Bolt 发出的流吗?
Can Storm replay a stream which emitted by a Bolt?
借助 storm 可靠的 spouts,可以重放处理失败的元组流。据我了解,只能从 spout 重播流。如果下一个螺栓无法处理该流,是否可以重播从螺栓发出的流?即,如果 "Bolt B" 由于某种原因不可用,一旦 "Bolt B" 再次可用,"Bolt A" 是否能够重播 "Stream 2"?
Storm 不支持。
如果 Bolt B 失败,则只能从 Spout 重播。假设 Spout 发出一个元组 t1,由 Bolt A 处理并产生输出元组 t2。如果 t2 不能被 Bolt B 处理,Spout 可以重新发射元组 t1,它被 Bolt A 第二次处理,导致再次输出元组 t2.
当然,Bolt A 在第二次处理 t1 时必须产生相同的输出元组 t2。此外,处理顺序也发生了变化。 Spout 可以在重新发出 t1 之前发出其他元组,即 Bolt B 可能会在失败后以不同的顺序接收元组(t2 很可能不会成为恢复 Bolt B 时的第一个元组)。
借助 storm 可靠的 spouts,可以重放处理失败的元组流。据我了解,只能从 spout 重播流。如果下一个螺栓无法处理该流,是否可以重播从螺栓发出的流?即,如果 "Bolt B" 由于某种原因不可用,一旦 "Bolt B" 再次可用,"Bolt A" 是否能够重播 "Stream 2"?
Storm 不支持。
如果 Bolt B 失败,则只能从 Spout 重播。假设 Spout 发出一个元组 t1,由 Bolt A 处理并产生输出元组 t2。如果 t2 不能被 Bolt B 处理,Spout 可以重新发射元组 t1,它被 Bolt A 第二次处理,导致再次输出元组 t2.
当然,Bolt A 在第二次处理 t1 时必须产生相同的输出元组 t2。此外,处理顺序也发生了变化。 Spout 可以在重新发出 t1 之前发出其他元组,即 Bolt B 可能会在失败后以不同的顺序接收元组(t2 很可能不会成为恢复 Bolt B 时的第一个元组)。