kafka为什么快?

kafka为什么快?

转自 https://zhuanlan.zhihu.com/p/78335525

首先要有个概念,kafka高性能的背后,是多方面协同后、最终的结果,kafka从宏观架构、分布式partition存储、ISR数据同步、以及“无孔不入”的高效利用磁盘/操作系统特性,这些多方面的协同,是kafka成为性能之王的必然结果。

本文将从kafka零拷贝,探究其是如何“无孔不入”的高效利用磁盘/操作系统特性的。

先说说零拷贝

零拷贝并不是不需要拷贝,而是减少不必要的拷贝次数。通常说的是IO读写过程中。

Kafka总结

总的来说Kafka快的原因:

  1. partition 顺序 读写,充分利用磁盘特性,这是基础;
  2. Producer生产的数据持久化到broker,采用 mmap文件映射,实现顺序的快速写入;
  3. Customer从broker读取数据,采用sendfile,将磁盘文件读到OS内核缓冲区后,直接转到socket buffer进行网络发送。
posted @ 2022-03-15 16:18  君子喻于义小人喻于利  阅读(71)  评论(0)    收藏  举报