官方说明
https://kafka.apache.org/documentation/
选择对应的版本,我这里选的是 2.4.X
https://kafka.apache.org/24/documentation.html
选择
https://kafka.apache.org/24/documentation.html#consumerconfigs
查找 max.poll.interval.ms
让我们来品一品官方的解读
啥意思?
如果两次poll操作间隔超过了这个时间,broker就会认为这个consumer处理能力太弱,会将其踢出消费组,将分区分配给别的consumer消费 ,触发rebalance 。
如果你的消费者节点总是在重启完不久就不消费了,可以考虑检查改配置项或者优化你的消费者的消费速度等等
配置
原生API
properties.put(ConsumerConfig.MAX_POLL_INTERVAL_MS_CONFIG, 10000);
Spring Kafka
根据@KafkaListener的配置
ConsumerConfig中支持的属性,没有显式声明的 都可以通过这个properties来进行修改
举个例子
consumer: auto-offset-reset: earliest # 设置消费者分组最初的消费进度为 earliest key-deserializer: org.apache.kafka.common.serialization.StringDeserializer value-deserializer: org.springframework.kafka.support.serializer.JsonDeserializer properties: max: poll: interval: ms: 600000 # 10分钟 spring: json: trusted: packages: com.artisan.springkafka.domain
测试
我们随手搭建一个Spring Boot的工程来测试下,这个配置项是否生效吧
properties: max: poll: interval: ms: 600000 # 10分钟
启动
可见已生效