Spring-kafka集成:在不重新启动应用程序的情况下更改ConsumerConfig属性

时间:2018-03-21 13:55:19

标签: spring-kafka

我试图通过在属性文件中进行更改来更改ConsumerConfig属性,这将由@scheduled方法监视(这将查找任何属性值的更改并在更新从中选取的容器工厂bean实例后重新初始化使用者应用上下文)。

例如:如果将新代理添加到集群,我只需更新属性文件中的代理列表。

1 个答案:

答案 0 :(得分:1)

KafkaConsumer及其ConsumerConfig来自DefaultKafkaConsumerFactory KafkaMessageListenerContainerDefaultKafkaConsumerFactory为消费者注入了Map个配置。我认为这正是您应该考虑从@Scheduled方法更改属性的地方。更改后,您应该再次stop()侦听容器和start() - 将根据新配置创建新的KafkaConsumer

但是consumerGroupId确实应该通过ContainerProperties进行更改。 为此目的,只需通过MessageListenerContainer.getContainerProperties().setGroupId(String groupId)更改它。