【问题标题】:Meauring latency of Storm bolts测量 Storm 螺栓的延迟
【发布时间】:2017-02-06 09:46:50
【问题描述】:

我正在尝试测量拓扑中每个螺栓的延迟。 Storm 给出的延迟数字是不够的,因为我们要计算百分位数。在我当前的设置中,我通过测量完成执行方法(包括调用发射)所需的时间来测量螺栓的延迟。上述方法的假设是,即使当前bolt实例和拓扑中的下一个bolt实例共享同一个executor,collector的emit也会立即返回,而不调用下一个bolt实例的execute方法。

【问题讨论】:

标签: apache-storm


【解决方案1】:

将计时器放在执行方法的开头和结尾(在发出之后)应该没问题。

【讨论】:

  • 这是否意味着 emit 方法是异步的?
  • 不一定。 Emit 可能会将元组添加到内部队列中,并且只要准备好处理下一个元组,下一个 Bolt 就会从队列中读取。所以不管你在下一个bolt上做什么,发射总是需要同样的时间,而且它是非常便宜的指令。如果你想测量发射需要多长时间,只需实现一个只发射的螺栓并测量它。然后,您可以从实际测量的螺栓中减去该数字。
  • '可能会添加元组' - 是的,我也假设这就是发生的情况,但只是想要确认。
猜你喜欢
  • 1970-01-01
  • 2014-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-20
相关资源
最近更新 更多