我的架构梦:(八十八)消息中间件之Kafka基于磁盘存储为啥这么快?

一、前言

各位读者朋友们,博主给大家拜年了。因为在写这篇文章的时候正是2021年的除夕夜,刚和家人吃完年夜饭,去睡之前,想着脑海里还有个问题困惑着我。这个问题是什么呢?没错,就是本篇的标题:Kafka基于磁盘存储为啥这么快?

Kafka基于磁盘存储,却具有高性能、高吞吐、低延时的特点,其吞吐量动辄几十上百万。小伙伴们是否也有和我一样的困惑?磁盘存储io相对于内存来说不是很慢吗?那Kafka怎么会有如此高的性能呢!!!

kafka高性能,是多方面协同的结果,包括宏观架构分布式partition存储ISR数据同步、以及“无所不用其极”的高效利用磁盘、操作系统特性

别急,跟着博主一起来探究竟。

二、零拷贝

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

nginx的高性能也有零拷贝的身影。

1、传统IO

比如:读取文件,socket发送。

传统方式实现:先读取、再发送,实际经过1~4四次copy。

buffer=File.read
Socket.send(buffer)

    你可能感兴趣的:(我的架构梦)