风暴:如何获得螺栓之间的传输延迟?

时间:2016-01-30 20:50:05

标签: azure apache-storm metrics hdinsight

注意:我使用的是Azure HDInsight Storm Linux群集。

有一个Storm UI可以提供相当好的指标,但它并没有给出螺栓之间的延迟。所以我在每个螺栓的开头和结尾放入了一些记录语句。这样我就可以计算螺栓之间的时间。不幸的是,这个值有时会回来消极...:/但这应该是不可能的。我使用了四个工作进程(JVM),所以我假设当一条消息从一个JVM传到另一个JVM时,它们的系统时钟不同步。

任何人都可以回答以下任何一个问题:

1) How to reliably get the transfer latency between bolts. 
2) How to sync the system clock between worker processes.

1 个答案:

答案 0 :(得分:2)

非常难 - 如果你想要非常可靠,你需要使用System.nanoTime() - 这不会访问系统时钟而不能在机器上同步 - 因此,它只适用于在同一台物理机器上运行的两名工人。

对于多机测量,您可以使用NTP同步系统时钟。但这不太准确。