Kafka高性能高吞吐的原因总结1、磁盘顺序读写2、零拷贝 3、分区分段+索引4、批量压缩 5、批量读写 6、优化JVM
保证了消息的堆积 顺序读写 磁盘会预读,预读即在读取的起始地址连续读取多个页面,主要时间花费在了传输时间,而这个时间两种读写可以认为是一样的。 随机读写 因为数据没有在一起,将预读浪费掉了,需要多次寻道和旋转延迟,而这个时间可能是传输时间的许多倍。避免CPU将数据从一块存储拷贝到另外一块存储的技术 传统的数据复制: 零拷贝: 磁盘文件 → 内核空间读取缓冲区 → 网卡接口 → 消费者进程 Kafka的message消息实际上是分布式存储在一个一 个小的s