gpt4 book ai didi

apache-kafka - Kafka 获取最大字节数未按预期工作

转载 作者:行者123 更新时间:2023-12-03 08:44:02 28 4
gpt4 key购买 nike

我有一个主题,值(value) 1 GB 消息。 A. Kafka 消费者决定消费这些消息。我该怎么做才能禁止消费者一次消费所有消息?我尝试设置

代理上的

fetch.max.bytes

更改为 30 MB,以便每次轮询中仅允许 30 MB 的消息。代理似乎不尊重这一点,并尝试立即向消费者提供所有消息,导致消费者内存不足错误。我该如何解决这个问题?

最佳答案

Kafka 配置可能相当庞大。通常在 Kafka 中,多个配置可以协同工作来实现结果。这带来了灵活性,但灵活性是有代价的。

摘自fetch.max.bytes的文档:

Records are fetched in batches by the consumer, and if the first record batch in the first non-empty partition of the fetch is larger than this value, the record batch will still be returned to ensure that the consumer can make progress.

仅在消费者方面,需要考虑更多配置来限制消费者内存使用,包括:

  • max.poll.records:限制单次调用 poll 检索的记录数。默认值为 500。
  • max.partition.fetch.bytes:限制每个分区获取的字节数。这应该不是问题,因为默认值为 1MB。

根据KIP-81中的信息,实际中的内存使用量应该类似于 min(num Brokers * max.fetch.bytes, max.partition.fetch.bytes * num_partitions)

此外,在同一个 KIP 中:

The consumer (Fetcher) delays decompression until the records are returned to the user, but because of max.poll.records, it may end up holding onto the decompressed data from a single partition for a few iterations.

我建议您也调整这些参数,希望这能让您进入所需的状态。

关于apache-kafka - Kafka 获取最大字节数未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62067624/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com