Spring boot 更改要在Spring Kafka中获取的记录数

Spring boot 更改要在Spring Kafka中获取的记录数,spring-boot,apache-kafka,spring-kafka,Spring Boot,Apache Kafka,Spring Kafka,我有一个spring引导服务,它有一个kafka消费者。我正在使用springkafka创建消费者 从文档中可以看出,max.poll.records属性将有助于限制要获取的记录数 但我的问题是,我想根据其他几个条件更改max.poll.records的值 我们如何使用弹簧卡夫卡来实现这一点?任何帮助都将不胜感激。如果您的意思是在运行时更改它,则无法完成;创建使用者时,属性将发送给Kafka 要更改它,您必须停止容器,更改属性,然后重新启动容器。您需要一个自定义的消费者工厂,它将DefaultK

我有一个spring引导服务,它有一个kafka消费者。我正在使用
springkafka
创建消费者

从文档中可以看出,
max.poll.records
属性将有助于限制要获取的记录数

但我的问题是,我想根据其他几个条件更改
max.poll.records
的值


我们如何使用弹簧卡夫卡来实现这一点?任何帮助都将不胜感激。

如果您的意思是在运行时更改它,则无法完成;创建使用者时,属性将发送给Kafka

要更改它,您必须停止容器,更改属性,然后重新启动容器。您需要一个自定义的消费者工厂,它将
DefaultKafkaConsumerFactory
子类化并重写

protected KafkaConsumer<K, V> createKafkaConsumer(Map<String, Object> configs) {
受保护的卡夫卡消费者创建卡夫卡消费者(地图配置){

在运行时更改属性。

如果您的意思是在运行时更改属性,则无法执行此操作;在创建使用者时,属性将发送给Kafka

要更改它,您必须停止容器,更改属性,然后重新启动容器。您需要一个自定义消费者工厂,该工厂将
defaultkafkanconsumerfactory
子类化并重写

protected KafkaConsumer<K, V> createKafkaConsumer(Map<String, Object> configs) {
受保护的卡夫卡消费者创建卡夫卡消费者(地图配置){

在运行时更改属性。

感谢@Gary的输入。是的,我只想获取主题中的消息数。
n
考虑到我们的负载,停止容器可能需要时间。在这种情况下,您需要自己创建使用者,而不是使用侦听器容器。谢谢!!您的意思是,覆盖
create吗eKafkaConsumer
并动态更新
fetcher.maxPollRecords
?不;我没有;您不能更改
fetcher
;字段是
final
(与
fetcher
本身一样)。您需要为每个不同的获取大小创建一个新的使用者。感谢@Gary的输入。感谢@Gary的输入。是的,我只想从主题中获取
n
消息数。考虑到我们的负载,停止容器可能需要时间。在这种情况下,您需要自己创建使用者,而不是使用listener容器。谢谢!!你的意思是,重写
CreateKafkanConsumer
并动态更新
获取程序。maxPollRecords
?不;我没有;你不能更改
获取程序
;字段是
最终的
(与
获取程序本身一样)。您需要为每个不同的获取大小创建一个新的使用者。感谢@Gary的输入。