Spring kafka 如何使用spring kafka列出订阅/注册的消费者?

Spring kafka 如何使用spring kafka列出订阅/注册的消费者?,spring-kafka,Spring Kafka,我是spring kafka版本2.2.7-RELEASE来编写kafka听众(作为消费者),并试图了解我们在spring kafka中是否有任何选项可以直接列出所有订阅/注册的消费者,以及消费者群体、消费者滞后补偿等详细信息?当前的2.2.x版本是2.2.10 如果您使用的是Spring Boot: @Bean 公共应用程序运行程序(KafkaAdmin管理员,ConsumerFactory cf){ 返回参数->{ Consumer=cf.createConsumer(“组”、“client

我是spring kafka版本2.2.7-RELEASE来编写kafka听众(作为消费者),并试图了解我们在spring kafka中是否有任何选项可以直接列出所有订阅/注册的消费者,以及消费者群体、消费者滞后补偿等详细信息?

当前的2.2.x版本是2.2.10

如果您使用的是Spring Boot:

@Bean
公共应用程序运行程序(KafkaAdmin管理员,ConsumerFactory cf){
返回参数->{
Consumer=cf.createConsumer(“组”、“clientId”和“”);
试试(AdminClient=AdminClient.create(admin.getConfig())){
集合组=client.listConsumerGroups()
.all()
.get(10,时间单位秒);
组。forEach(组->{
Map=null;
试一试{
map=client.listConsumerGroupOffsets(group.groupId())
.partitionsToOffsetAndMetadata()
.get(10,时间单位秒);
}
捕捉(中断异常e){
e、 printStackTrace();
}
捕获(执行例外){
e、 printStackTrace();
}
捕获(超时异常e){
e、 printStackTrace();
}
Map endoffset=consumer.endoffset(Map.keySet());
地图forEach((tp,off)->{
System.out.println(“组:“+group+”tp:+tp
+“当前偏移量:”+off.offset()
+“结束偏移量:”+endOffsets.get(tp));
});
});
}
最后{
consumer.close();
}
};
}

如果您没有使用Spring Boot,请使用
AdminClient.create()
创建管理员、消费者,然后执行相同的操作

谢谢你的回复。我有个问题。我看到了获取ConsumerGroupListings列表的选项,但没有看到任何查看实际消费者的选项。我在寻找我在方法上使用@KafkaListener注释时应该创建的消费者。有几种方法可以获取这些信息。例如,您可以添加一个事件侦听器并接收一个事件。文档中有一个bug;该事件未列出。您还可以在侦听器容器上调用
metrics()
,以接收由client.id键入的每个消费者的条目的度量映射(度量具有滞后信息)。让我再给您介绍一下这方面的背景。我正在使用testcontainers编写组件测试,以测试我的生产者和消费者代码。有时我的测试会失败,因为在调用我的断言时没有调用使用者。因此,我试图理解为什么这种情况会间歇性发生。您可以在测试中等待,直到收到
ConsumerStartedEvent
;您还应该将
ConsumerConfig.AUTO\u OFFSET\u RESET\u CONFIG
设置为
earlime
,以确保您的消费者在开始之前将获得任何发布的记录。我可以检查ConsumerStartedEvent。在prod中将ConsumerConfig.AUTO_OFFSET_RESET_CONFIG设置为Earlime可能不是一个好选项,因为据我所知,如果由于某种原因必须停止和启动consumer应用程序,它会多次处理记录。请建议