当前位置:   article > 正文

kafka buffer.memory参数入门_datasize buffermemory默认值

datasize buffermemory默认值

buffer.memory
Kafka的客户端发送数据到服务器,不是来一条就发一条,而是经过缓冲的,也就是说,通过KafkaProducer发送出去的消息都是先进入到客户端本地的内存缓冲里,然后把很多消息收集成一个一个的Batch,再发送到Broker上去的,这样性能才可能高。

buffer.memory的本质就是用来约束Kafka Producer能够使用的内存缓冲的大小的,默认值32MB。

如果buffer.memory设置的太小,可能导致的问题是:消息快速的写入内存缓冲里,但Sender线程来不及把Request发送到Kafka服务器,会造成内存缓冲很快就被写满。而一旦被写满,就会阻塞用户线程,不让继续往Kafka写消息了。

所以“buffer.memory”参数需要结合实际业务情况压测,需要测算在生产环境中用户线程会以每秒多少消息的频率来写入内存缓冲。经过压测,调试出来一个合理值。

与batch.size的区别
batch.size Kafka producers attempt to collect sent messages into
batches to improve throughput. With the Java client, you can use
batch.size to control the maximum size in bytes of each message batch.

buffer.memory Use buffer.memory to limit the total memory that is
available to the Java client for collecting unsent messages. When this
limit is hit, the producer will block on additional sends for as long
as max.block.ms before raising an exception.

总结
注意buffer.memory 与batch.size参数的区别
如果要发送大文件的话,要同时提高buffer.memory 和batch.size的大小
 

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号