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

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

面试题: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数据读写是批量的

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5718554.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存