繁体   English   中英

带有动态 @KafkaListener 的 Spring Kafka

[英]Spring Kafka with Dynamic @KafkaListener

我将 Spring Boot 2.x 与spring-kafka (不是spring-integration-kafka )一起使用

我有多个 bean 用@KafkaListener注释......每个 bean 都从一个主题中消费......所以因为我有 12 个主题,那么我还需要有 12 个 KafkaConsumers bean......我想知道我是否可以创建这些 bean以编程方式/动态方式...也许使用KafkaListenerEndpointRegistry来动态创建消费者容器。

注意:我需要批量消费消息......所以也许我可以使用BatchMessageListener

当前代码:

@KafkaListener(
        id = COUNTRY,
        containerFactory = KAFKA_LISTENER_FACTORY_BEAN_NAME,
        topics = {TOPIC},
        groupId = GROUP_ID,
        clientIdPrefix = CLIENT_ID,
        errorHandler = VALIDATION_ERROR_HANDLER_BEAN_NAME
    )
    @Override
    public void consume(final List<MessageDTO> messages,
        @Header(KafkaHeaders.RECEIVED_TOPIC) final List<String> topics,
        @Header(KafkaHeaders.RECEIVED_MESSAGE_KEY) final List<String> messagesKey,
        @Header(KafkaHeaders.RECEIVED_PARTITION_ID) final List<Integer> partitionIds,
        @Header(KafkaHeaders.RECEIVED_TIMESTAMP) final List<Long> timestamps,
        @Header(KafkaHeaders.OFFSET) final List<Long> offsets) {
            (...)
    }

每个主题使用者都有自己的实现,具体取决于主题。 你们能指点我一个博客/伪代码/git线程/答案吗?

如果你的主题有一些模式,你也可以试试这个:

      kafka:
        bindings:
            input.consumer.destination-is-pattern: true

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM