两个java实例中kafka消费者多线程并发下是否可以同属一个消费者组?

有一个springboot程序用
spring.kafka.consumer.group-id=orderGroup
@KafkaListener(topics = "orders")的时候,配置并发度
spring.kafka.listener.concurrency=50

假如这个程序部署两个实例
那么是不是有100个消费者线程同属于orderGroup这个消费者组?

阅读 10.6k
2 个回答

应该是的。你启动程序之后,可以用 kafka 的命令来看一下:

kafka/bin/kafka-consumer-groups.sh \
  --bootstrap-server server1:9001,server2:9001 \
  --group orderGroup --describe

如果结果有100行,那么就是100个线程同时在消费这个组。

要看下给你创建了多少个消费实例,并且 groupID 是相同的。那就是属于一组的。

可以起到一个冗余和负载的作业,但是100个实例分别放到两个进程中这样分配不太合理。

可以4个进程,一个进程 N 个消费实例,具体是多少还是得根据你 Topic 的分区数来设置。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题