当前位置:   article > 正文

Kafka配置max.poll.interval.ms参数

max.poll.interval.ms

Kafka配置max.poll.interval.ms参数

max.poll.interval.ms默认值是5分钟,如果需要加大时长就需要给这个参数重新赋值

这里解释下自己为什么要修改这个参数:因为第一次接收kafka数据,需要加载一堆基础数据,大概执行时间要8分钟,而5分钟后,kafka认为我没消费,又重新发送,导致我这边收到许多重复数据,所以我需要调大这个值,避免接收重复数据

大部分文章都是如下配置:

public static KafkaConsumer<String, String> createConsumer() {
    Properties properties = new Properties();
    properties.put(CommonClientConfigs.BOOTSTRAP_SERVERS_CONFIG, BOOTSTRAP_SERVER);
    properties.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
    properties.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
    properties.put(ConsumerConfig.GROUP_ID_CONFIG, "group1");
    properties.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest");
    properties.put(ConsumerConfig.MAX_POLL_INTERVAL_MS_CONFIG, 10000);
    return new KafkaConsumer<>(properties);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

或是:

max.poll.interval.ms = 300000
  • 1

但是我是需要在springboot的yml文件中配置,显然上面的方法都不满足我的需求,如果试过的小伙伴会发现spring.kafka.consumer下根本没有max-poll-interval-ms这个参数

spring:
  kafka:
    consumer:
      max-poll-records: 500
  • 1
  • 2
  • 3
  • 4

如果需要在yml文件中配置,应该怎么写呢?查了几个小时的资料,总算是找到了

spring:
  kafka:
    consumer:
      max-poll-records: 500
  	properties:
      max:
        poll:
          interval:
            ms: 600000
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

启动项目后,还是会有如下提示:

 The configuration 'max.poll.interval.ms' was supplied but isn't a known config.
  • 1

但是,打印出来的参数配置,已经显示生效了
在这里插入图片描述
而且经过自己测试,也没有再出现数据重复发送的情况

完美解决!~!

参考文章:
https://stackoverflow.com/questions/61648630/spring-kafka-overriding-max-poll-interval-ms
https://www.cnblogs.com/alexgl2008/articles/12392044.html
https://www.jianshu.com/p/f9ef9f058016

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/142501
推荐阅读
相关标签
  

闽ICP备14008679号