2017-07-17 62 views
1

我使用注释@KafkaListener来消费我的应用程序中的主题。我的问题是,如果我在卡夫卡创建了一个新话题,但我的消费者已经在运行,似乎消费者不会选择新话题,即使它与我正在使用的topicPattern相匹配。是否有办法定期“刷新”订阅的主题,以便在运行的消费者中挑选并重新平衡新主题?Spring Kafka - 运行时订阅新主题

我使用Spring Kafka 1.2.2和Kafka 0.10.2.0。

Regards

回答

3

您不能在运行时动态添加主题;您必须停止/启动容器才能开始聆听新主题。

您可以@AutowireKafkaListenerEndpointRegistry和停止/开始听众id

您也可以通过在注册表本身上调用stop()/start()来停止/启动所有收听者。

+0

太棒了!它适用于主题!相同的逻辑是否适用于主题上的新分区,或者Spring Kafka是否捕获了运行时的分区? –

+0

是的;它会工作;所有主题分配由经纪人完成;容器只是订阅并获取经纪人分配的任何内容。 –