0


面试题:Kafka为什么吞吐量大、速度那么快

  • 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 java 分布式

本文转载自: https://blog.csdn.net/qq_46045632/article/details/122765529
版权归原作者 养不起心爱的猫该如何是好 所有, 如有侵权,请联系我们删除。

“面试题:Kafka为什么吞吐量大、速度那么快”的评论:

还没有评论