Spring Kafka @KafkaListener侦听器容器?

时间:2020-06-13 22:33:40

标签: spring-boot apache-kafka

是否可以控制@KafkaListener使用的ListenerContainer对象?如果可能,我想使用容器动态订阅新主题。还是有另一种更好的在运行时订阅新主题的方法?谢谢。 -aj

1 个答案:

答案 0 :(得分:0)

如果您使用'@EnableKafka',那么KafkaListenerEndpointRegistry将自动注册为Bean(代码:https://git.io/JfQDQ

因此您可以获取如下的侦听器列表。

@Service
public class KafkaListenerHandler {
    private final KafkaListenerEndpointRegistry registry;
    public KafkaListenerHandler(KafkaListenerEndpointRegistry registry) {
        this.registry = registry;
    }
    public List<MessageListenerContainer> getListener() {
        return new ArrayList<>(registry.getListenerContainers());
    }
}

但是,您无法在运行时更改主题...

查看此链接:https://stackoverflow.com/a/54467119/2462408