本文主要是介绍我的架构梦:(八十八)消息中间件之Kafka基于磁盘存储为啥这么快?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
欢迎大家关注我的公众号【老周聊架构】,Java后端主流技术栈的原理、源码分析、架构以及各种互联网高并发、高性能、高可用的解决方案。
一、前言
各位读者朋友们,博主给大家拜年了。因为在写这篇文章的时候正是2021年的除夕夜,刚和家人吃完年夜饭,去睡之前,想着脑海里还有个问题困惑着我。这个问题是什么呢?没错,就是本篇的标题:Kafka基于磁盘存储为啥这么快?
Kafka基于磁盘存储,却具有高性能、高吞吐、低延时的特点,其吞吐量动辄几十上百万。小伙伴们是否也有和我一样的困惑?磁盘存储io相对于内存来说不是很慢吗?那Kafka怎么会有如此高的性能呢!!!
kafka高性能,是多方面协同的结果,包括宏观架构
、分布式partition存储
、ISR数据同步
、以及“无所不用其极”的高效利用磁盘、操作系统特性
。
别急,跟着博主一起来探究竟。
二、零拷贝
零拷贝并不是不需要拷贝,而是减少不必要的拷贝次数
。通常是说在IO读写过程中。
nginx的高性能也有零拷贝的身影。
1、传统IO
比如:读取文件,socket发送。
传统方式实现:先读取、再发送,实际经过1~4四次copy。
buffer
这篇关于我的架构梦:(八十八)消息中间件之Kafka基于磁盘存储为啥这么快?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!