1. 消息集(message set)
生产者在将消息发送给Kafka的时候,可以将多条消息以前发送,减低IO的次数
2. 二进制传输
Kafka的消息传递过程中,会将数据转换为字节数组来进行传递
3. 顺序读写磁盘
根据offset递增的顺序读取磁盘,而且每次读取数据是多条数据一起读取的
4. "零"拷贝(没有任何数据处理)
kafka在传输数据的时候,log文件中的数据直接通过系统内存(内核)直接网络传输,不经过应用(kafka)的内存的数据的交换
5. 端到端的数据压缩
(1)定义:kafka支持直接传输压缩的数据(压缩是kafka的Producer Api负责)
kafka接收到producer传输过来的压缩的数据,不会进行解压操作,直接存储;
然后当consumer获取数据的时候,直接将压缩好的数据传输过去,consumer接收到压缩数据后再进行解压操作
(2)作用:这种压缩减少网络压力,但是增大了生产者(压缩)和消费者(解压)的压力
Kafka支持默认支持三种压缩方式:lz4(一般不用)、gzip、snappy(最常用)
配置参数,需要在Producer中进行配置:参数是:compression.codec,参数值默认为none,表示不进行压缩