spring-kafka 会创建多少线程来消费你的topic

平时工作中,我们对接kafka主要使用的是spring kafka,但是指定的topic到底如何设置线程数,设置的线程数作用范围是什么?详细很多人并不清楚.

先上结论: spring kafka是基于group来分配线程数的.

在spring-kafka中,主要是依赖`concurrency ` 来指定消费者组内处理消息的并发数量.如果多个topic使用同一个groupid。则这批线程为这批topic共有,线程会去消费不同topic的分区.

spring-kafka 会创建多少线程来消费你的topic_第1张图片

 

如果group和topic的关系是1:1,那么这个topic将独享这批线程.

因此我们平时开发中一定要注意,针对topic的重要性来分配合理的groupid, 因为如果所有的topic都使用同一个group,因为是同一批线程,只要有某个topic的消费有问题,比如处理时间过长,都会影响到其他topic的正常消费.

如有错误,还往指出

你可能感兴趣的:(kafka,spring,java)