是否可以控制@KafkaListener使用的ListenerContainer对象?如果可能,我想使用容器动态订阅新主题。还是有另一种更好的在运行时订阅新主题的方法?谢谢。 -aj
答案 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());
}
}
但是,您无法在运行时更改主题...