我正在构建一个性能监视工具,它与kafka主题一起在集群中工作。
例如,我正在监视两个主题: request
, response
. i、 我需要两个时间戳-一个来自 request
另一个来自 response
. 然后我可以计算差异,看看在接收请求并生成响应的服务中花费了多少时间。
请考虑到它是在一个集群上工作的,因此不同的组件可能在不同的主机上运行,因此-不同的物理时钟-因此它们可能不同步,并且会严重扭曲结果。
另外,我无法可靠地使用监视工具本身的时钟,因为这将通过其自身的处理时间影响计时结果。
所以,我想设计一个合适的方法,可靠地计算时间差。在Kafka,测量两个事件之间时间差最可靠的方法是什么?
1条答案
按热度按时间bfnvny8b1#
解决方案1:
我们以前也遇到过类似的问题,我们的解决方案是建立ntp(网络时间协议)。
在这个节点中,您的一个节点充当ntp服务器并运行demons以保持所有节点的时间同步我们保持utc,所有其他节点都有ntp客户端,这些客户端在所有服务器上保持相同的时间
解决方案2:
为所有组件构建一个时钟公共api,它将提供当前时间。这将使您的系统设计独立于节点本地时钟。