Kafka为什么这么快? 1.kafka是基于partition 分区技术实现的,分布式提高Kafka的并发量 2.KafKa的稀疏索引机制,kafka每4kb插入一个索引,索引在查询时候,可以比较高的效率查到到数据 3.Kafka的底层往磁盘上面写的时候,是采用顺序读写的机制,在磁盘上面顺序读写时,写入速度极快,可以达到600m/s,所以说kafka使用机械硬盘性价比比较高 4.kafka的页缓存和零拷贝技术
- 页缓存
- 页缓存技术是通过操作系统的page cache技术实现,也叫 os cache,就是系统缓存,所以kafka写入的时候,是往内存写的,而不是直接往磁盘写,这样在性能方面又有一次提升,接下来会由操作系统决定什么时候往磁盘上面刷写
- 零拷贝
- 零拷贝技术是kafka的应用层不参与对数据的操作,把数据的操作放在生产者和消费者端,利用系统的 File cache 技术实现也就是NIO技术,这样有个好处是当消费者来读数据的时候,可以直接从os cache中把数据给到消费者,如果没有零拷贝技术, 是需要将数据从os cache 复制到应用层缓存中通过进程和消费者通信的,这一过程是很消费性能和时间的,通过零拷贝技术也是提高了Kafka的性能