performance - 请求/响应的 Kafka 消息时间戳

标签 performance apache-kafka timestamp cluster-computing clock

我正在构建一个性能监控工具,该工具在带有 Kafka 主题的集群中工作。

例如,我正在监控两个主题:request , response . IE。我需要两个时间戳 - 一个来自 request另一个来自 response .然后我可以计算差异以查看在接收请求并产生响应的服务中花费了多少时间。

请考虑到它在集群上工作,因此不同的组件可能在不同的主机上运行,​​因此 - 不同的物理时钟 - 所以它们可能不同步,并且会严重扭曲结果。

此外,我无法可靠地使用监控工具本身的时钟,因为这会通过其自身的处理时间影响计时结果。

所以,我想设计一种可靠地计算时间差的正确方法。测量Kafka中两个事件之间时间差的最可靠方法是什么?

最佳答案

解决方案一 :

我们之前遇到过类似的问题,我们的解决方案是设置 NTP(网络时间协议(protocol))。

在这个节点中,您的一个节点充当 NTP 服务器并运行恶魔以在所有节点上保持时间同步,我们保持 UTC,所有其他节点都有 NTP 客户端,它们在所有服务器上保持相同的时间

解决方案二 :

为您的所有组件构建一个时钟通用 API,它将提供当前时间。这将使您的系统设计独立于节点本地时钟。

关于performance - 请求/响应的 Kafka 消息时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54629397/

相关文章:

apache-kafka - kafka 打开的文件太多

java - 使用不同 Avro 类型向 Kafka 发送消息的性能 – SpecificRecordBase 与带有 Schema Registry 的 GenericRecord

javascript - Mongoose 默认日期

javascript - 时区选项在 Intl.DateTimeFormat() 中究竟做了什么

sql - 如何提高 SQL 中平均方法的性能?

python - 加速 Python cKDTree

java - 增加内核数量时性能下降

javascript - IE 中的内存泄漏 : Due to ajax call using . load()

apache-kafka - 在 Kafka 中读取字段 'topic_metadata' 时出错

java - 需要修改 java 时间戳以从数据库中获取最新记录