缓冲区大小,批次大小,linger.ms(间隔时间),压缩
- 顺序读写
kafka的消息不断追加到文件中,所以kafka可以充分利用磁盘的顺序读写性能。顺序读写不需要硬盘磁头的寻道时间,只需要很少的扇区旋转时间,所以速度远大于随机读写。 - 零拷贝
kafka把所有的消息放在一个文件中,当消费者需要数据的时候直接将文件发送给消费者。 - 分区分段
Kafka的队列被分为多个分区partition,每个partition又分为多个段segment。所以队列中的消息实际上是保存在N多个片段文件中。通过分段方式,每次文件操作都是对一个小文件的操作,非常轻便,同时也增加并行处理能力。 - 批量发送
Kafka允许进行批量发送消息,现将消息缓存在内存中,然后一次请求批量发送出去,达达减少服务端的次数。 - 数据压缩
Kafka支持对消息集合进行压缩,Producer可以通过Gzip或snappy格式对消息集合进行压缩。减少传输的数据量,减轻对网络传输的压力。