Apache Kafka 能够处理高达数百万每秒吞吐的消息流,颠覆了人们关于“持久化到磁盘必然低效”的认知。Kafka 深度契合现代操作系统的底层运转特性,其极速吞吐的基石主要建立在以下三大关键设计之上:1. 极致的磁盘顺序追加写(Sequential Append I/O)机械硬盘(甚至 SSD)的随机寻道延迟极其高昂。Kafka 将每个分区的数据组织为一个只能单向追加的 Commit Log 文件。操作系统的磁头无需反复寻道,顺序 I/O 的理论带宽与内存随机访问几乎相差无几。2. 深度拥抱内核页缓存(PageCache)Kafka 的 JVM 进程几乎不在用户态堆内存中缓存大量消息,从而避免了巨额垃圾回收(GC Pause)引发的系统停顿。Kafka 直接将数据写入操作系统的 PageCache。内核自适应负责脏页的刷盘策略,即使 Broker 进程重启,PageCache 中的数据依然热驻留在物理内存中。3. 传输阶段的零拷贝(Zero-Copy)技术传统的文件网络发送需要经历:磁盘 -> 内核缓冲区 -> JVM 内存 -> Socket 缓冲区 -> 网卡,伴随 4 次上下文切换与 4 次数据拷贝。Kafka 针对数据消费场景,通过 Java NIO 的 FileChannel.transferTo() 底层调用 Linux 内核的 sendfile() 系统调用:Plaintext磁盘 ---> PageCache (内核) ---------------> 网卡缓冲区 (DMA 拷贝) [无需拷贝到用户态] (DMA 拷贝) CPU 仅需将文件描述符与长度信息传递给套接字,数据直接在内核空间由 DMA 引擎转运至网卡,彻底抹杀了数据在内核态与用户态之间的内存搬运,将网络网卡带宽打至物理上限。