kkf*_*flf 5 apache-kafka spring-kafka
我想创建一个并发 @KafkaListener,它可以处理多个主题,每个主题都有不同数量的分区。
我注意到 Spring-Kafka 只为大多数分区的主题为每个分区初始化一个使用者。
示例:我将并发设置为 8。我@KafkaListener听了以下主题。主题 A 的分区最多 - 5 个,因此 Spring-Kafka 初始化了 5 个消费者。我希望 Spring-Kafka 初始化 8 个消费者,这是根据我的并发属性允许的最大值。
不初始化更多消费者的技术原因是什么?
我如何绕过这个,以便我可以使用@KafkaListener注释初始化更多的使用者?(如果可能的话)
当监听器配置为监听多个主题时,每个消费者实例监听所有主题;Spring 确实启动了 8 个消费者(在这种情况下),但这些分区实际上分布在消费者之间的方式由 Kafka 的组管理控制:
因此,在这种情况下,您最终会得到 3 个空闲的消费者。
可能可以提供自定义partition.assignment.strategy以按照您想要的方式进行分发,但我从未研究过。
编辑
我刚刚测试了RoundRobinAssignor...
spring.kafka.consumer.properties.partition.assignment.strategy=org.apache.kafka.clients.consumer.RoundRobinAssignor
Run Code Online (Sandbox Code Playgroud)
和...
| 归档时间: |
|
| 查看次数: |
3166 次 |
| 最近记录: |