首页 > 解决方案 > 应用程序实例终止时重置 Kafka Streams 指标

问题描述

我们目前有两个相同的流应用程序正在运行。两者都在运行时正确报告指标。当我们终止其中一个流应用程序时,正在运行的实例上的指标全部重置为 0。为什么?这是预期的行为吗?

我们使用 KafkaStreams#allMetadata() 从远程应用程序实例获取指标,并使用 KafkaStreams#metrics() 获取本地指标数据。我知道这不是时间问题,因为样本数量设置为很大,因此它们不会重置为旧数据。

我们正在使用 1.1.1

有关我们如何从远程应用程序获取它们的更多详细信息:KafkaStreams#allMetadata() 返回一个 StreamsMetadata 列表,其中包含远程应用程序的主机和端口。我们对该主机和我创建的休息端点进行休息调用。该休息端点返回 KafkaStreams#metrics() 的结果。所有这些都有效。当我的应用程序离开集群时,所有指标都会重置为 0。我也可以在 jconsole 中看到这一点。

标签: apache-kafka-streams

解决方案


当应用程序离开集群时,任务将被迁移到其他主机,因此KafkaStreams#allMetadata()应该刷新以获取新的端点以查询指标。


推荐阅读