-
Kafka天生的分布式架构
-
顺序写:Kafka使用了磁盘顺序写来提升的性能。Kafka的message是不断追加到本地磁盘文件末尾的,而不是随机的写入,减少了磁盘寻址的开销
-
Kafka利用了操作系统自身的内存,Kafka的读写操作基本上是基于内存的,读写速度得到了极大的提升。而不是JVM空间内存,避免GC问题,Java对象的内存消耗比较大
-
通过 “零拷贝”的机制,Kafka消费端的性能也大幅提升,零拷贝技术,不需要切换到用户态,在内核态即可完成读写操作,零拷贝避免了在内核空间和用户空间之间的拷贝,sendfile方法允许操作系统将数据从Page Cache 直接发送到网络,只需要最后一步的copy操作将数据复制到 NIC 缓冲区
-
分区分段+索引:Kafka的message是按topic分类存储的,topic中的数据按照一个个的partition存储到不同broker节点,每个分区有分多个segment,Kafka默认为分段后的数据文件建立索引文件。这种分区分段+索引的设计,提高了数据读取的效率,及数据操作的并行度。
-
对消息批量压缩,减少网络IO损耗
-
Kafka数据读写是批量的
面试题:Kafka为什么吞吐量大、速度那么快
最新推荐文章于 2023-08-01 12:37:09 发布