【问题标题】:How to increase the Kafka consumers in SpringSpring如何增加Kafka消费者
【发布时间】:2019-11-14 08:01:48
【问题描述】:

我正在创建一个支持 Kafka 的 Spring Boot 应用程序。 我创建了一个生产者和一个消费者,一切都像魅力一样运作。在运行时我有一个消费者。我希望有很多消费者,我的主题的分区数量相同。

如何创建多个消费者?

我一直在搜索文档,但没有成功。

谢谢!

【问题讨论】:

    标签: spring-boot apache-kafka kafka-consumer-api spring-kafka


    【解决方案1】:

    您需要创建一个ConcurrentKafkaListenerContainerFactory 并设置并发参数。它基于并发创建 1 个或多个 KafkaMessageListenerContainers。如果 ContainerProperties 配置了 TopicPartitions,TopicPartitions 将均匀分布在各个实例中。

    例如

    ConcurrentKafkaListenerContainerFactory<String, String> factory = new ConcurrentKafkaListenerContainerFactory<>();
    factory.setConcurrency(12);
    

    【讨论】:

    • 如果您使用的是@KafkaListener,它有一个concurrency 属性(从2.2 开始),它会覆盖容器工厂的默认设置。
    • 这种情况下,clientId是为每个listener动态生成的?
    • 是否可以设置最大并发级别数?假设我在一个容器中有 1 个内核和 1 GB 内存供我的消费者使用,那么可以生成的最佳线程数是多少?
    猜你喜欢
    • 2020-11-26
    • 2020-10-13
    • 2018-10-21
    • 2019-04-07
    • 1970-01-01
    • 2019-11-21
    • 1970-01-01
    • 2019-08-27
    • 2022-01-11
    相关资源
    最近更新 更多