本文主要是介绍Kafka高吞吐低延迟原理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
- 顺序读写
- Page Cache
- 零拷贝
- 分区分段+索引
- 批量读写
- 批量压缩
顺序读写
Kafka将消息记录持久化到本地磁盘中,实际上不管是内存还是磁盘,快或慢关键在于寻址的方式,磁盘分为顺序读写与随机读写,内存也一样分为顺序读写与随机读写。基于磁盘的随机读写确实很慢,但磁盘的顺序读写性能却很高。
Kafka使用磁盘顺序读写来提升性能,Kafka的message是不断追加到本地磁盘文件末尾的,而不是随机的写入,这使得Kafka写入吞吐量得到了显著提升 。每一个Partition其实都是一个文件 ,收到消息后Kafka会把数据插入到文件末尾。
这种方法不能删除数据 ,所以Kafka是不会删除数据的,它会把所有的数据都保留下来,每个消费者(Consumer)对每个Topic都有一个offset用来表示 读取到了第几条数据 。
两个消费者,Consumer1有两个offset分别对应Partition0、Partition1(
这篇关于Kafka高吞吐低延迟原理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!