主要观点总结
本文梳理了Kafka为何能够实现高速处理的几个关键原因,包括批量处理思想、磁盘顺序读写、零拷贝技术、页缓存加速消息读写、分区与并行处理以及数据压缩等技术。
关键观点总结
关键观点1: 批量处理思想
Kafka支持批量发送和接收消息,通过生产者批量发送消息和消费者一次性获取多个消息进行处理,减少网络开销和磁盘I/O次数,提高性能。
关键观点2: 磁盘顺序读写
Kafka大量使用磁盘进行数据存储,并采用顺序写入的方式,通过减少磁头的寻道时间提高写入速度。每个分区接收到的Producer消息按顺序写入日志文件,消费环节从全局指定位置起顺序读取。
关键观点3: 零拷贝技术
Kafka使用零拷贝技术将数据从磁盘直接发送到网络,避免了在内核空间和用户空间之间的多次数据拷贝,减少了数据拷贝的次数和开销。
关键观点4: 页缓存加速消息读写
Kafka利用PageCache(操作系统内存中的磁盘文件缓存)来加速消息的读写,充分利用这一特性提高读取速度和间接提升写入性能。
关键观点5: 分区与并行处理
Kafka的主题可以被分成多个分区,每个分区可以分布在不同的服务器上,实现并行写入和读取,提高了吞吐量。
关键观点6: 数据压缩
生产者在发送消息到Kafka集群之前,可以对消息进行压缩,降低网络传输的带宽消耗,并提高数据传输的效率。
文章预览
前言 有位粉丝去字节面试。问了一道很经典的八股文: kafka为什么这么快 ? 其实这不就送分题嘛,哈哈~~ 我梳理了田螺版的答案: 批量处理思想 磁盘顺序读写 零拷贝技术 页缓存加速消息读写 分区与并行处理 数据压缩 1.批量处理思想 之前写SQL优化技巧的时候,就提到 批量更新SQL ~~ 假如你需要搬一万块砖到楼顶,你有一个电梯,电梯一次可以放适量的砖(最多放500),你可以选择一次运送一块砖,也可以一次运送500, 你觉得哪个时间消耗大 ? kafka为什么这么快,就是使用了 批量操作 思想。 Kafka支持 批量发送和接收消息 。生产者可以 将多个消息打包成一个批次发送 ,消费者 也可以一次性获取多个消息进行处理 。这样可以减少网络开销和磁盘I/O次数,提高性能。 Kafka生产者send()方法看似单条发送, 实则内部批量处理 。消息先缓存, 待数量足够或
………………………………