确认/锚定风暴元组的正确方法

kiayqfof  于 2021-06-24  发布在  Storm
关注(0)|答案(1)|浏览(251)

我有一个螺栓,在小批量的元组工作。我基本上有一个 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显示了从这个螺栓中提取的非常少的元组。这是锚定他们的正确方法还是我需要打电话 collector.ack(tuple) 也在bolt switch语句中?尽管storm ui计数很奇怪,但拓扑运行时没有任何元组超时。

erhoui1w

erhoui1w1#

如果要在工作进程崩溃时重放挂起的锚定,则不应在bolt1情况下确认元组。你也不想多次确认元组。
看起来你在追踪tick元组而不是tick案例中的锚?你也应该确认锚点,否则一旦你点击拓扑消息超时,喷口就会被告知它们失败了。

相关问题