concurrency属性作用
concurrency默认是1;
container.setConcurrency(3)表示创建三个KafkaMessageListenerContainer实例。
一个KafkaMessageListenerContainer实例分配一个分区进行消费;
如果设置为1的情况下, 这一个实例消费Topic的所有分区;
如果设置多个,那么会平均分配所有分区;
如果实例>分区数; 那么空出来的实例会浪费掉;
如果实例<=分区数 那么会有一部分实例消费多个实例,但也是均衡分配的
如果在分布式情况下, 那么总的
KafkaMessageListenerContainer实例数= 服务器机器数量*concurrency ;
标签:机器,设置,分区,Kafka,实例,concurrency,KafkaMessageListenerContainer,属性 From: https://www.cnblogs.com/andy1234/p/180586742.什么情况下设置concurrency,以及设置多少
这个得看我们给Topic设置的分区数量; 总的来说就是 机器数量*concurrency <= 分区数
例如分区=3; 而且同时有3台机器 ,那么concurrency=1就行了; 设置多了就会浪费资源;、
例如分区=9; 只有3台机器;那么可以concurrency=3 ; 每台机器3个消费者连接3个分区; 那么你可能会问我们concurrency=1不也可以吗; 反正都是一台机器消费3个分区;
话是没有错; 但是他们的差别在 一个线程消费3个分区和 3个线程消费3个分区 , 单线程和多线程你选哪个