gpt4 book ai didi

java - Apache KafkaMetric value 方法已弃用,如何使用 metricValue 代替?

转载 作者:太空宇宙 更新时间:2023-11-04 10:20:32 25 4
gpt4 key购买 nike

所以我创建了一个函数来从 Kafka 主题获取指标

    public <T extends KafkaTemplate> Double getMetricValue(String key, T kafkaTemplate) {
for (final Object set : kafkaTemplate.metrics().entrySet()) {
Map.Entry map = (Map.Entry) set;
MetricName metricName = (MetricName) map.getKey();
KafkaMetric kafkaMetric = (KafkaMetric) map.getValue();

if (metricName.name().equals(key)) {
return kafkaMetric.value();
}
}

return 0.0;
}

它将用于例如:Utils.getMetricValue("buffer-available-bytes", kafkaTemplate);

问题是现在根据文档:https://kafka.apache.org/10/javadoc/index.html?org/apache/kafka/common/Metric.htmlvalue 方法已弃用!它返回一个 Double。

现在我们需要使用返回 Object 的 metricValue,但是没有文档说明如何使用它,而且我也无法通过谷歌搜索找到任何示例。

那么你知道如何最好地调整上述函数以使用 metricValue 来代替吗?我想在这样做的同时摆脱弃用警告和面向 future 的证明。

这是我讨厌 Java 的另一个主要例子。文档中没有使用示例是它的常态:(

最佳答案

我查看了源代码。 metricValue() 可以返回两个不同的值。

  1. 它返回 Double - 与 value() 完全相同。
  2. 它返回类型 T - 我认为这取决于您对 Kafka 的实现。

由于您的输入buffer-available-bytes,我预计您的情况会返回 Double。

有很多关于 Java 的文档...但不是在这个特殊情况下。我认为文档的缺乏是因为Kafka的组合主要用于企业,而且这个变化相对较新。

我鼓励您研究源代码并找出org.apache.kafka.common.metrics.Metrics中使用的默认类型。

最后一点。这不是 Spring-Kafka 特有的,而是与 Apache-Kafka 有关。

关于java - Apache KafkaMetric value 方法已弃用,如何使用 metricValue 代替?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51212581/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com