1. buffer.memory

  • 生产者将用于缓冲等待发送到broker的消息的内存量,生产者发送消息的
    速度快于broker所能处理的速度,记录将保留在生产者的内存中进行缓冲;

  • 默认每个生产者维护一个32MB的缓冲内存,称为发送缓冲区;

  • 缓冲区可能会随时间的推移而填满(fill up),
    并在到broker的吞吐量增加时fill back down;

  • 当缓冲区内存已满时,生产者的send()将阻塞,由max.block.ms控制;

2. max.block.ms

  • 控制生产者在调用send()和通过partitionsFor()显式请求元数据时会阻塞多长时间;

  • 当生产者的发送缓冲区已满或元数据不可用时,这些方法会阻塞;

  • 当达到max.block.ms时,会引发超时异常,默认60000,即1分钟;