Kafka - fetch.max.wait.ms - 它如何处理多个分区?

mos*_*osh 5 apache-kafka kafka-consumer-api

我正在为我的 Kafka 消费者设置fetch.max.wait.msfetch.min.bytes

我正在尝试理解这种行为。

让我们举个例子:

  • 具有 4 个分区的主题
  • 2 消费者。
  • 每个消费者都有 2 个分区可以使用。
  • fetch.min.bytes 太高以至于永远无法满足。

代理是否为每个消费者都有某种计时器,以便它可以知道何时满足 fetch.max.wait.ms 条件?

特定经纪人如何评估消费者将获得的数据量?该消费者也可能从未托管在该代理上的其他分区读取数据。

从我所做的一些实验来看,当消费者使用具有单个分区的主题时,配置似乎可以正常工作,与文档中描述的完全一样。

另一方面,当消费者从多个分区读取数据时,行为并不清晰。我发现 fetch 请求的响应速度远高于 fetch.max.wait.ms 中定义的速度。

这种差异在某种程度上有意义吗?(与 MSK 斯隆合作)

[这个问题跟进/sf/ask/5096906811/ ]