深入浅出理解kafka原理系列之:发送消息的缓冲区机制buffer.memory、batch.size、linger.ms
- kafka默认会创建一个消息缓冲区,用来存放要发送的消息,缓冲区是32M
- kafka本地线程会去缓冲区中一次拉16k的数据,发送到broker
- 如果线程拉不到16k的数据,间隔10ms也会将已拉到的数据发送到broker
一、buffer.memory
- 设置发送消息的本地缓冲区,如果设置了该缓冲区,消息会先发送到本地缓冲区,可以提高消息发送性能。默认值是33554432,即32MB
props.put("buffer.memory", 33554432);
二、batch.size
- kafka本地线程会从缓冲区取数据,批量发送到broker
- 设置批量发送消息的大小,默认值是16348,即16kb,就是说一个batch满了16kb就发送出去
props