【发布时间】:2020-05-16 04:43:43
【问题描述】:
有没有办法为分配到同一消费者组的所有消费者找到整个 kafka 滞后?
我只能得到分配分区的延迟。例如假设只有一个分区分配给消费者,下面的代码只会为该分区带来延迟。不适用于其他分区。
Set<TopicPartition> partitionSet = consumer.assignment();
Map<TopicPartition, Long> endOffsets = consumer.endOffsets(partitionSet);
for(TopicPartition tp : partitionSet) {
LOG.info("Topic:{}, EndOffset:{}, currentOffset:{}, LAG:{}",
tp.topic(), endOffsets.get(tp), consumer.position(tp), endOffsets.get(tp)-consumer.position(tp));
}
基本上,希望找到所有分区的滞后总和,以了解一个主题的所有消费者(同一组)滞后多少。
另外,有没有类似于 kafka-consumer-groups 的 api 可用,并通过 bootstrap-server 和 group 作为参数来查找滞后?
./kafka-consumer-groups.sh --bootstrap-server --group --describe
【问题讨论】:
-
kafka-consumer-groups 只是 Scala 类的包装器。您可以从代码中调用它
-
或者,您可以设置外部监控,如 Burrow 或 Prometheus 以跟踪所有组滞后
标签: java apache-kafka