注意:我使用的是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.
答案 0 :(得分:2)
非常难 - 如果你想要非常可靠,你需要使用System.nanoTime()
- 这不会访问系统时钟而不能在机器上同步 - 因此,它只适用于在同一台物理机器上运行的两名工人。
对于多机测量,您可以使用NTP同步系统时钟。但这不太准确。