azure - Storm : How do I get the transfer latency between bolts?

标签 azure apache-storm metrics azure-hdinsight

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

有一个 Storm UI 提供了相当好的指标,但它没有提供 bolt 之间的延迟。因此,我在每个 bolt 的开头和结尾添加了一些日志记录语句。这样我就可以计算 bolt 之间的时间。不幸的是,这个值有时会返回负数...:/但这应该是不可能的。我使用四个工作进程 (JVM),因此我假设当消息从一个 JVM 发送到另一个 JVM 时,它们的系统时钟不同步。

有人可以回答以下任一问题吗:

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

最佳答案

非常难——如果你想做得非常可靠,你需要使用System.nanoTime()——这不会访问系统时钟,并且不能 在机器上同步——因此,它只适用于在同一台物理机器上运行的两个工作线程。

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

关于azure - Storm : How do I get the transfer latency between bolts?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35106950/

相关文章:

azure - .NET Core 2 Service Fabric 控制台应用程序通用配置文件

java - 如何查找 BaseRichSpout - Apache Storm 的 failed() 方法中的失败根源?

java - Storm Esper bolt 元组锚定

java - (卡夫卡)在 Storm 中喷发返回事物列表,无法将此列表传播到 bolt

python-3.x - PIL 逊线性系数keras

java - 有没有办法在 SonarQube 中测量 Java 代码的各种指标

azure - 如何管理 Azure 应用服务证书

c# - 在 Azure 网站上使用 RSACryptoServiceProvider 会导致文件未找到错误

azure - 无法为 cosmos db 分配 Azure 角色

azure - 应用服务的响应时间指标到底是什么