- kafka将topic划分为多个分区,每个分区独立读写;生产者负载均衡,避免了单个分区的压力;
- 同一个消费组内的多个实例分别处理不同分区,提高了消费的吞吐
- kafka的消息时追加写,避免了随机磁盘寻址,顺序写的速度接近内存的操作
- kafka采用异步刷盘机制,消息和索引的写入先写入操作系统的页缓存,再刷盘到磁盘,避免了频繁的磁盘IO,提高吞吐
- 消费者在拉取数据时,采用了零拷贝技术,将数据从页缓存通过sendfile()发送到网卡
- 另外kafka的索引机制是通过偏移量及时间戳来定位消息的,减少了全盘扫描的开销