正确的方法来确定/锚定Storm元组

时间:2018-04-03 21:08:06

标签: apache-storm

我有一个小批量元组的螺栓。我基本上有一个switch语句,用于侦听来自前一个螺栓的流或tick tuple。它看起来像这样:

switch(component) {
    bolt1:
      do some work...
      anchors.add(tuple)
    tick:
      do some work...
      collector.emit(anchors, value)
      collector.ack(tuple)
      anchors.clear()

当我运行它时,Storm UI会显示从此螺栓中获取的非常少量的元组。这是锚定它们的正确方法还是我还需要在bolt switch语句中调用collector.ack(tuple)?即使Storm UI计数很奇怪,拓扑也会在没有任何元组超时的情况下运行。

1 个答案:

答案 0 :(得分:1)

如果要在工作程序崩溃时重播待处理的锚点,则不应该在bolt1情况下使用元组。你永远不会想要多次使用元组。

看起来你正在查找蜱元组而不是蜱案例中的锚点?您也应该确定锚点,或者一旦您点击拓扑消息超时,就会告诉它们它们已经失败。