Kafka在消息写入磁盘的情况下为什么还能这么快?

Kafka的高性能主要来自于以下几个方面:

一,磁盘顺序写 + Page Cache机制

Kafka的写入是append-only的顺序写,避免了磁盘寻址开销,比随机写要快很多,同时消息是写入的操作系统的Page Cache,由操作系统来统一刷盘,进一步提高了写入速度。

二,零拷贝技术

Kafka使用sendfile的系统调用,是直接将数据从磁盘传输到socket缓冲区,避免了数据在用户态和内核间的多次拷贝,提高数据传输效率。

三,批量处理(批量写入 + 批量读取)

Kafka中的Producer,Consumer,以及Broken写磁盘,都是批量操作,一次处理多条数据,有效减少I/O次数,提升整体吞吐量

四,分布式架构 + 多分区并发

每个Topic都可以划分为多个partition,由不同的Producer/Consumer独立处理,实现天然并行。

同时可以横向扩展节点,纵向充分利用多核资源,支撑高并发的读写处理。

五,高效的索引机制

每个partition的日志文件都维护.index和.timeindex,Kafka通过二分查找快速定位offset,对消费端的读取性能有很大提升。

Kafka的高性能是多个底层优化的结果,写入阶段是批量操作,磁盘顺序写+Page Cache机制,读取阶段是靠零拷贝,高效索引机制,再配合批量处理,多partition并发架构,实现了高吞吐,低延迟的性能目标。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值