Apache storm 测量风暴螺栓的潜伏期

Apache storm 测量风暴螺栓的潜伏期,apache-storm,Apache Storm,我试图测量拓扑中每个螺栓的延迟。Storm给出的延迟数不够,因为我们需要计算百分位数。在我当前的设置中,我通过测量完成execute方法(包括调用emit)所需的时间来测量bolt的延迟。上述方法的假设是,收集器的emit将立即返回,而不调用next bolt instances execute方法,即使拓扑中的当前bolt实例和下一个bolt实例共享相同的执行器。将计时器置于execute方法的开头和结尾(在emit之后)您应该没事。这是否意味着emit方法是异步的?不一定。Emit可能会将该

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

将计时器置于execute方法的开头和结尾(在emit之后)您应该没事。

这是否意味着emit方法是异步的?不一定。Emit可能会将该元组添加到内部队列中,下一个bolt在准备处理下一个元组时从队列中读取。因此,不管您在下一个螺栓上做什么,emit总是占用相同的时间,而且它是非常便宜的指令。如果要测量发射所需的时间,只需实现一个仅发射的螺栓并测量它。然后你可以从实际测量的螺栓中减去这个数字。“可能会添加元组”-是的,我也假设会发生这种情况,但只是想确认一下。