apache-kafka-streams - 应用程序实例终止时重置 Kafka Streams 指标
问题描述
我们目前有两个相同的流应用程序正在运行。两者都在运行时正确报告指标。当我们终止其中一个流应用程序时,正在运行的实例上的指标全部重置为 0。为什么?这是预期的行为吗?
我们使用 KafkaStreams#allMetadata() 从远程应用程序实例获取指标,并使用 KafkaStreams#metrics() 获取本地指标数据。我知道这不是时间问题,因为样本数量设置为很大,因此它们不会重置为旧数据。
我们正在使用 1.1.1
有关我们如何从远程应用程序获取它们的更多详细信息:KafkaStreams#allMetadata() 返回一个 StreamsMetadata 列表,其中包含远程应用程序的主机和端口。我们对该主机和我创建的休息端点进行休息调用。该休息端点返回 KafkaStreams#metrics() 的结果。所有这些都有效。当我的应用程序离开集群时,所有指标都会重置为 0。我也可以在 jconsole 中看到这一点。
解决方案
当应用程序离开集群时,任务将被迁移到其他主机,因此KafkaStreams#allMetadata()
应该刷新以获取新的端点以查询指标。
推荐阅读
- linux - 如何通过剪切其中的某些部分并使用 linux 命令行保留序列的主要文本来编辑 fasta 序列中的标题?
- ruby-on-rails - 我可以从 Rails 应用程序构建电子应用程序吗?
- javascript - 如何访问嵌套对象键
- excel - 如何使用 vba 将网页抓取的数据保存到新的 excel 列
- c# - swagger,.net core api中的响应内容类型
- matlab - 在 Matlab 中绘制不同大小的向量
- android - 使用 android studio 应用程序连接到谷歌云 mysql
- javascript - JavaScript - 将焦点转移到悬停元素
- javascript - 部署到 Heroku 时找不到 mongoDB 模块
- image - 使用 Unity 和 Vuforia 未在目标图像上加载对象