【中间件】为什么用Kafka,它是怎么做到高吞吐量高性能的

之前在项目中,有用Kafka来做日志处理,只知道Kafka很适合用来处理日志,它高性能、高吞吐量。那么它是如何做到高性能、高吞吐量的呢?
(1)使用了页缓存技术
Kafka 每次接收到数据都会往磁盘上去写,它是基于操作系统的页缓存来实现文件写入的
操作系统本身有一层缓存,叫做 Page Cache,是在内存里的缓存,我们也可以称之为 OS Cache,意思就是操作系统自己管理的缓存。
在写入磁盘文件的时候,可以直接写入这个 OS Cache 里,也就是仅仅写入内存中,接下来由操作系统自己决定什么时候把 OS Cache 里的数据真的刷入磁盘文件中
(2)以磁盘顺序写的方式来写
将数据追加到文件的末尾,不是在文件的随机位置来修改数据
(3)零拷贝技术
零拷贝就是不需要把 OS Cache 里的数据拷贝到应用缓存,再从应用缓存拷贝到 Socket 缓存了,两次拷贝都省略了
Kafka就是直接让操作系统的 Cache 中的数据发送到网卡后传输给下游的消费者,中间跳过了两次拷贝数据的步骤

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值