Kafka高效读写数据

  1. Kafka本身是分布式集群,可以采用分区技术,并行度高
  2. 读数据采用稀疏索引,可以快速定位要消费的数据
  3. 顺序写磁盘
    Kafka的producer生产数据,要写入到log文件中,写的过程是一直追加到文件末端,为顺序写,官网有数据表明,同样的磁盘,顺序写能到600M/s,而随机写只有100K/s.这与磁盘的机械结构有关,顺序写之所以快,是因为其省去了大量磁头寻址的时间
  4. 页缓存+零拷贝技术
    零拷贝:Kafka的数据加工处理操作交由Kafka生产者和Kafka消费者处理,Kafka Broker应用层不关心存储的数据,所以就不用走应用层,传输效率高

PageCache页缓存:Kafka重读依赖底层操作系统提供的PageCache功能,当上层有写操作时,操作系统只是将数据写入PageCache,当读操作发生时,先从PageCache中查找,如果找不到,再去磁盘中读取,实际上PageCache是把尽可能多的空闲内存都当作了磁盘缓存来使用