如何通过kafka中的java获取特定主题的消费者数量
我需要在应用程序启动时自动启动kafka consumer。但在此之前,我想知道是否有其他消费者已经对该主题进行了投票。如何通过kafka中的java获取特定主题的消费者数量,java,apache-kafka,kafka-consumer-api,spring-kafka,Java,Apache Kafka,Kafka Consumer Api,Spring Kafka,我需要在应用程序启动时自动启动kafka consumer。但在此之前,我想知道是否有其他消费者已经对该主题进行了投票。 我可以在kafka confluent网站上看到这些细节,但我希望通过java代码获得这些细节。 我知道kafka的bin文件夹中有一些.sh文件,但我想在生产环境中并通过java代码来执行此操作。您可以使用AdminClient来描述消费群体: @springboot应用程序 公共类SO67668813应用程序{ 公共静态void main(字符串[]args){ Spri
我可以在kafka confluent网站上看到这些细节,但我希望通过java代码获得这些细节。
我知道kafka的bin文件夹中有一些.sh文件,但我想在生产环境中并通过java代码来执行此操作。您可以使用
AdminClient
来描述消费群体:
@springboot应用程序
公共类SO67668813应用程序{
公共静态void main(字符串[]args){
SpringApplication.run(So67668813Application.class,args);
}
@豆子
公共新话题(){
返回TopicBuilder.name(“so67668813”).partitions(4).replications(1.build();
}
@卡夫卡列斯汀(id=“so67668813”,topics=“so67668813”)
公共void侦听(字符串输入){
系统输出打印项次(输入);
}
@豆子
公共应用程序运行程序(KafkaAdmin管理){
返回参数->{
《睡眠》(2000年);
尝试(AdminClient=AdminClient.create(admin.getConfigurationProperties())){
地图组=
client.descriptionConsumerGroup(Collections.singletonList(“so67668813”))
.all()
.get(10,时间单位秒);
系统输出打印项次(组);
}
};
}
}
{so67668813=(groupId=so67668813,isSimpleConsumerGroup=false,members=(memberId=consumer-so67668813-1-620a9dd7-c995-461d-bb7d-c141457a5799,groupInstanceId=null,clientId=consumer-so67668813-1,主机=/127.0.0.1,赋值=(topicPartitions=so67668813-3,so67668813-1,so67668813-2,so67668813-0)),partitionAssignor=range,state=Stable,coordinator=localhost:9092(id:0 rack:null),authorizedOperations=null)}
您需要检查是否有同一消费群体或任何消费群体的任何正在运行和分配的消费群体?@SahilGupta:同一消费群体