Kafka 原理——Kafka 为何如此之快?
我们都知道操作系统每次从磁盘读写数据的时候,需要先寻址找到数据在磁盘上的物理位置,然后再进行数据读写,如果是 HDD 硬盘,由于它要移动磁头,所以这个寻址需要较长时间,如果数据是按照顺序读写,它只要寻址一次,就可以连续读写下去,这样就会省去大部分寻址时间,因此性能会比随机读写提升几十倍,如果是 SSD 硬盘顺序读写的性能要比随机读写快几倍
而 Kafka 充分利用磁盘的这个特性,它接收消息后,就按顺序地写入对应分区的 log 文件中,一个文件写满了,就开启一个新的文件顺序写下去。当消费数据时,就从某个 log 文件中的某个位置开始,顺序把消息读出来,这种设计几乎可以媲美内存的随机访问
另外 Kafka 还利用操作系统的 PageCache 机制,在内存中给磁盘上的文件建立缓存,当程序在调用系统 API 读写文件时,可以直接读取内存中缓存的 log 文件副本,这无异是给消息读写又加了一个涡轮增压。因而 Kafka 从发布之后就一发不可收拾,牢牢盘踞数据集成传输的头把交椅,时至今日
博主简介:国内最大最权威的 Kafka 中文社区,共享知识,实时掌控最新行业资讯
技术交流:请联系博主微信号:didiyun0125
社区地址:免费加入中 ~
版权声明: 本文为 InfoQ 作者【Kafka中文社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/d076332e1029d6ad453796587】。文章转载请联系作者。
评论