Kafka 消费者 fetch-min-size (fetch.min.bytes) 是否等待提到的大小被填满?

问题描述 投票:0回答:1

假设有107条记录,每条记录1kb。如果获取大小为 15kb,则在 7 次迭代中将消耗 105kb。现在,只剩下 2kb,我会在下一次迭代中获得剩余的 2 条记录,还是会等待更多的 15kb 累积?假设此后不再有任何记录。

apache-kafka kafka-consumer-api spring-kafka
1个回答
3
投票

它会等待,直到达到

fetch.max.wait.ms
中定义的时间。默认情况下,该值设置为 500。您可以在Consumer

的Kafka文档中找到这两个相关配置的描述

获取最小字节数

服务器应为获取请求返回的最小数据量。如果可用数据不足,请求将等待积累足够多的数据,然后再答复请求。默认设置为 1 字节,意味着只要有一个字节的数据可用,或者获取请求在等待数据到达时超时,就会立即应答获取请求。将其设置为大于 1 的值将导致服务器等待大量数据的积累,这可以稍微提高服务器吞吐量,但代价是一些额外的延迟。

fetch.max.wait.ms

如果没有足够的数据来立即满足 fetch.min.bytes 给出的要求,则服务器在应答获取请求之前阻塞的最长时间。

© www.soinside.com 2019 - 2024. All rights reserved.