kafka-批量发送
生产者发送多个消息到同一个分区的时候,为了减少网络带来的系能开销,kafka会对消息进行批量发送batch.size通过这个参数来设置批量提交的数据大小,默认是16k,当积压的消息达到这个值的时候就会统一发送(发往同一分区的消息)linger.ms这个设置是为发送设置一定是延迟来收集更多的消息,默认大小是0ms(就是有消息就立即发送)当这两个参数同时设置的时候,只要两个条件中满足一个就会发送。比如
·
生产者发送多个消息到同一个分区的时候,为了减少网络带来的系能开销,kafka会对消息进行批量发送
batch.size
通过这个参数来设置批量提交的数据大小,默认是16k,当积压的消息达到这个值的时候就会统一发送(发往同一分区的消息)
linger.ms
这个设置是为发送设置一定是延迟来收集更多的消息,默认大小是0ms(就是有消息就立即发送)
当这两个参数同时设置的时候,只要两个条件中满足一个就会发送。比如说batch.size设置16kb,linger.ms设置50ms,那么当消息积压达到16kb就会发送,如果没有到达16kb,那么在第一个消息到来之后的50ms之后消息将会发送。
重点代码如下:
Properties properties = new Properties();
properties.put(ProducerConfig.BATCH_SIZE_CONFIG, "524288");//增加批次效果,性能更好
properties.put(ProducerConfig.LINGER_MS_CONFIG, 500);//最小等待时长限制,性能更好
properties.put(ProducerConfig.COMPRESSION_TYPE_CONFIG, "lz4");
producer = new KafkaProducer<>(properties,new ByteArraySerializer(),new ByteArraySerializer());
更多推荐
已为社区贡献4条内容
所有评论(0)