作者:飞天6585_439 | 来源:互联网 | 2022-12-09 16:16
在kafka生产者设置中,如果将linger.ms设置为0且batch.size不为零,则预期的行为是什么?生产者将在发送消息之前等待到达batch.size多长时间?它会一直等待直到消息的大小小于指定的批处理大小,还是因为linger.ms为零,所以它将不进行任何批处理而仅发送每个请求?
1> 小智..:
不,这并不意味着生产者将等待批次装满。生产者将发送半满的批次,甚至只发送一条消息的批次。
因此,将批处理大小设置得太大不会导致发送消息的延迟。它只会为批处理使用更多的内存。将批处理大小设置得太小会增加一些开销,因为生产者将需要更频繁地发送消息。
默认情况下(linger.ms = 0),即使批量中只有一条消息,生产者也会在有发送者线程可用时立即发送消息。
希望能帮助到你。
谢谢。