1)提升生产吞吐量
(1)buffer.memory:发送消息的缓冲区大小,默认值是 32m,可以增加到 64m。
(2)batch.size:默认是 16k。如果 batch 设置太小,会导致频繁网络请求,吞吐量下降; 如果 batch 太大,会导致一条消息需要等待很久才能被发送出去,增加网络延时。
(3)linger.ms,这个值默认是 0,意思就是消息必须立即被发送。一般设置一个 5-100 毫秒。如果 linger.ms 设置的太小,会导致频繁网络请求,吞吐量下降;如果 linger.ms 太长, 会导致一条消息需要等待很久才能被发送出去,增加网络延时。
(4)compression.type:默认是 none,不压缩,但是也可以使用 lz4 压缩,效率还是不 错的,压缩之后可以减小数据量,提升吞吐量,但是会加大 producer 端的 CPU 开销。
2)增加分区
修改主题 test 为 7 个分区。
bin/kafka-topics.sh --bootstrap-server 192.168.25.129:9092 --alter --topic test --partitions 7
3)消费者提高吞吐量
(1)调整 fetch.max.bytes 大小,默认是 50m。
(2)调整 max.poll.records 大小,默认是 500 条。
4)增加下游消费者处理能力