Kafka 中以 KB 为单位的批量大小究竟是多少?

How exactly is the batch size measured in KB in Kafka?

我对 Kafka 很陌生,我想知道生产者的批量大小是如何以 KB 为单位衡量的。我无法理解这一点。

那么,问题是我们如何衡量以 KB 为单位的批量大小?我的意思是每个有效载荷的大小都不同,那么在这种情况下批量大小是如何工作的呢? producer 是否检查下一条消息是否超过 batch size 来决定是否将 batch 发送给 broker?是否可以选择批量处理一些消息?

同样的问题也适用于消费者,如果消费者有这样的选择或配置。

有两个重要的配置 producer...

生产者控制每批不超过batch.size字节,达到linger.ms无条件发送该批。但是,生产者不会在消息中间切入。

还有两个重要的配置 consumers...

代理等待 fetch.min.bytes 没有响应。但是,当达到 fetch.max.wait.ms 时,即使没有消息,它也会 returns 响应。

以上所有配置都不是代理端配置。您必须为每个生产者或消费者设置配置。