Storm UI:执行和处理延迟之间的差异

not*_*tar 13 metrics real-time apache-storm

我一直在努力记录当前项目的所有Storm指标的含义.

在此过程中,我从该组响应以及github收集了数据.

虽然有些指标非常自我解释,但我对一些螺栓指标感到困惑.

例如,Process Latency和Execute Latency之间有什么区别?

通过此Google论坛上的帖子,我收集了以下信息:

  • 列表项处理延迟=调用ack时的时间戳 - 执行传递元组时的时间戳

  • 列表项执行延迟=执行函数结束时的时间戳 - 执行传递时的时间戳元组(来源:http://goo.gl/3KRAl)

  • 列表项处理延迟是直到元组被激活的时间,执行延迟是元组执行所花费的时间(来源:http://goo.gl/m0fTC)

根据我在风暴用户界面中看到的内容,我的执行延迟几乎总是大于进程延迟.怎么会这样?任何人都可以帮我确定两种延迟的确切定义吗?

提前致谢!

小智 5

Ack在执行程序的执行函数中调用,或者在执行螺栓的执行方法结束之前调用.因此,执行延迟更多.这个片段会让事情变得清晰(从这里开始):

public void execute(Tuple tuple) {
  String sentence = tuple.getString(0);
  for(String word: sentence.split(" ")) {
    _collector.emit(tuple, new Values(word));
  }
  _collector.ack(tuple);
}
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助.