gpt4 book ai didi

apache-kafka - @KafkaListener 并发多个主题

转载 作者:行者123 更新时间:2023-12-03 16:24:29 24 4
gpt4 key购买 nike

我要创建并发@KafkaListener它可以处理多个主题,每个主题具有不同数量的分区。

我注意到 Spring-Kafka 只为大多数分区的主题为每个分区初始化一个使用者。

示例:我将并发设置为 8。我得到了 @KafkaListener听以下主题。主题 A 的分区最多 - 5 个,因此 Spring-Kafka 初始化了 5 个消费者。我希望 Spring-Kafka 初始化 8 个消费者,这是根据我的并发属性允许的最大值。

  • 主题A有5个分区
  • 主题 B 有 3 个分区
  • 话题 C 有 1

  • 不初始化更多消费者的技术原因是什么?

    我如何绕过这个,以便我可以使用 @KafkaListener 初始化更多消费者注解? (如果可能的话)

    最佳答案

    当监听器配置为监听多个主题时,每个消费者实例监听所有主题; Spring 确实启动了 8 个消费者(在这种情况下),但这些分区实际上分布在消费者之间的方式由 Kafka 的组管理控制:

    enter image description here

    enter image description here

    因此,在这种情况下,您最终会得到 3 个空闲的消费者。

    可能可以提供自定义 partition.assignment.strategy以您想要的方式进行分发,但我从未研究过。

    编辑

    我刚刚用 RoundRobinAssignor 进行了测试...

    spring.kafka.consumer.properties.partition.assignment.strategy=org.apache.kafka.clients.consumer.RoundRobinAssignor

    和...

    enter image description here

    关于apache-kafka - @KafkaListener 并发多个主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52077027/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com