首页 > 解决方案 > 动态创建消费者spring kafka

问题描述

我正在创建一个与另一个服务对话的服务,以识别要收听的 kafka 主题。kafka 主题可能有不同的键和值类型。因此,我想为每个配置(主题、键类型、值类型)动态创建不同的 kafka 消费者,其中配置仅在运行时才知道。但是在 spring kafka 中,我看不到动态传递所有这些参数的方法(至少我不知道有任何方法)。我该怎么做。

标签: apache-kafkakafka-consumer-apispring-kafka

解决方案


只需在运行时创建一个新的侦听器容器。

https://docs.spring.io/spring-kafka/docs/current/reference/html/#message-listener-container

如果您使用的是 Spring Boot,则可以使用ConcurrentKafkaListenerContainerFactory它自动配置的;如果没有,只需手动创建和初始化容器。


推荐阅读