代码之家  ›  专栏  ›  技术社区  ›  Sparkler-blush

kafka中maxpollrecords与自动提交的关系

  •  0
  • Sparkler-blush  · 技术社区  · 6 年前

    有人能给我一些很好的例子和卡夫卡参数maxpollrecords与卡夫卡自动提交之间的关系吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Indraneel Bende    6 年前

    他们之间没有这种关系。我来给你解释一下这两种配置。

    在卡夫卡,消费者有两种方式可以提交补偿-

    1.手动偏移提交-提交偏移的责任在于开发人员。

    2.启用自动提交-这是卡夫卡消费者负责为您提交补偿的地方。其工作原理是,在对使用者进行的每次poll()调用中,都会检查是否是提交偏移量的时间(这由auto.commit.interval.ms配置决定),如果是时间,则提交偏移量。

    例如-假设auto.commit.interval.ms设置为7秒,每次调用poll()需要8秒。因此,在对poll()的特定调用中,它将检查提交偏移量的时间是否已过(在本例中是这样),然后它将提交从上一个poll获取的偏移量。

    在消费者关闭期间也会进行补偿。

    以下是一些链接,您可以查看-

    https://kafka.apache.org/documentation/#consumerconfigs

    https://kafka.apache.org/11/javadoc/org/apache/kafka/clients/consumer/KafkaConsumer.html

    Does kafka lose message if consumer holds message longer then auto commit interval time?

    现在,转到max.poll.records。通过此配置,您可以告诉kafka使用者,记录的最大数量是多少,您希望它在一次调用poll()时返回。注意,通常不会更改默认值,除非您的记录处理速度很慢,并且您希望确保不会因为处理太多记录的速度太慢而将您的消费者视为死亡。