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

时间:2019-02-11 11:17:34

标签: performance apache-kafka timestamp cluster-computing clock

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

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

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

此外,我不能可靠地使用监视工具本身的时钟,因为这会因其自身的处理时间而影响计时结果。

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

1 个答案:

答案 0 :(得分:0)

解决方案1 ​​

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

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

解决方案2

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