Apache kafka 更好地理解卡夫卡中的最小获取字节?
我正在为Kafka调整一些配置,以便将记录批处理到文件中 我看到了Apache kafka 更好地理解卡夫卡中的最小获取字节?,apache-kafka,kafka-consumer-api,Apache Kafka,Kafka Consumer Api,我正在为Kafka调整一些配置,以便将记录批处理到文件中 我看到了minfetchbytes,它是在一个主题的N个分区上进行一次轮询返回的最小字节数。以下是我关注的场景: 我将记录数据的min fetch设置为100mb。假设我有价值250mb的数据。我做了两次轮询,并将200mb持久化。现在我有50mb在队列中,但我仍然希望它被处理,但不打算有更多的数据进入。如果超时了,它会抓取剩余的50mb吗?对不起,我应该更仔细地查看文档。请注意,这与超时一起使用 fetch.max.wait.ms 通过
minfetchbytes
,它是在一个主题的N个分区上进行一次轮询返回的最小字节数。以下是我关注的场景:
我将记录数据的min fetch设置为
100mb
。假设我有价值250mb的数据。我做了两次轮询,并将200mb
持久化。现在我有50mb
在队列中,但我仍然希望它被处理,但不打算有更多的数据进入。如果超时了,它会抓取剩余的50mb吗?对不起,我应该更仔细地查看文档。请注意,这与超时一起使用
fetch.max.wait.ms
通过设置fetch.min.bytes,您可以告诉Kafka等待,直到它有足够的空间
在响应消费者之前要发送的数据。fetch.max.wait.ms让
你可以控制等待的时间。默认情况下,卡夫卡最多会等待500次
毫秒。如果没有延迟,这将导致高达500毫秒的额外延迟
有足够的数据流向卡夫卡主题,以满足最小数量的要求
返回的数据量。如果您想限制潜在的延迟(通常是
由于SLA控制应用程序的最大延迟),您
可以将fetch.max.wait.ms设置为较低的值。如果你设定
fetch.max.wait.ms至100 ms,fetch.min.bytes至1 MB,Kafka将
从使用者接收提取请求,并用数据进行响应
当它有1 MB的数据要返回时,或在100毫秒后,以
先发生
tl;dr如果超时超过队列填充之前的时间,它将只返回剩余的50mb