Java 无法从所有分区获取Kafka延迟
有没有办法找到分配给同一消费群体的所有消费者的整个卡夫卡滞后 我只能得到分配分区的延迟。例如,假设只有一个分区分配给消费者,下面的代码只会给该分区带来延迟。不适用于其他分区Java 无法从所有分区获取Kafka延迟,java,apache-kafka,Java,Apache Kafka,有没有办法找到分配给同一消费群体的所有消费者的整个卡夫卡滞后 我只能得到分配分区的延迟。例如,假设只有一个分区分配给消费者,下面的代码只会给该分区带来延迟。不适用于其他分区 Set<TopicPartition> partitionSet = consumer.assignment(); Map<TopicPartition, Long> endOffsets = consumer.endOffsets(partitionSet); for(TopicPa
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));
}
Set partitionSet=consumer.assignment();
Map endoffset=consumer.endoffset(partitionSet);
for(TopicPartition tp:partitionSet){
LOG.info(“主题:{},内偏移:{},当前偏移:{},滞后:{}”,
topic(),endOffsets.get(tp),consumer.position(tp),endOffsets.get(tp)-consumer.position(tp));
}
基本上,我们希望找到所有分区的滞后总和,以了解一个主题的所有消费者(同一组)落后了多少
另外,是否有类似于kafka消费群体的api可用,并将引导服务器和群体作为参数传递以查找滞后
./kafka-consumer-groups.sh--引导服务器--组--描述以编程方式实现此目的的正确方法是使用AdminClient API:
listOffsets()
,它将允许单独使用AdminClient来检索延迟
这基本上就是卡夫卡消费群体在封面下所做的。因此,如果您愿意,请查看。kafka consumer groups只是Scala类的包装。你可以从代码中调用它。或者,你可以设置外部监控,如Burrow或Prometheus,以跟踪所有的群滞后!这就是我要找的。现在,我们能够在完全不需要消费者的情况下获得SETT的消费者。