Kafka原理——Kafka为何如此之快?
我们都知道操作系统每次从磁盘读写数据的时候,需要先寻址找到数据在磁盘上的物理位置,然后再进行数据读写,如果是HDD硬盘,由于它要移动磁头,所以这个寻址需要较长时间,如果数据是按照顺序读写,它只要寻址一次,就可以连续读写下去,这样就会省去大部分寻址时间,因此性能会比随机读写提升几十倍,如果是SSD硬盘顺序读写的性能要比随机读写快几倍
而Kafka充分利用磁盘的这个特性,它接收消息后,就按顺序地写入对应分区的log文件中,一个文件写满了,就开启一个新的文件顺序写下去。当消费数据时,就从某个log文件中的某个位置开始,顺序把消息读出来,这种设计几乎可以媲美内存的随机访问
另外Kafka还利用操作系统的PageCache机制,在内存中给磁盘上的文件建立缓存,当程序在调用系统API读写文件时,可以直接读取内存中缓存的log文件副本,这无异是给消息读写又加了一个涡轮增压。因而Kafka从发布之后就一发不可收拾,牢牢盘踞数据集成传输的头把交椅,时至今日
国内最大最权威的 Kafka中文社区 ,在这里你可以结交各大互联网Kafka大佬以及近2000+Kafka爱好者,一起实现知识共享,实时掌控最新行业资讯,免费加入中~
Kafka原理——Kafka为何如此之快?相关推荐
- Kafka原理+操作+实战
Kafka原理+操作+实战 前面我和大家交流了kafka的部署安装.对于部署安装这都是小意思,不值得太多的提及.重点还是需要知道kafka原理.熟练掌握kafka命令以及灵活用于kafka场景. 干货 ...
- 深入浅出kafka原理-2-Kafka为何那么快(高效)
目录 前言:Kafka为何那么快(高效) 1.文件系统 2.降低时间复杂度 3.零拷贝 4.下一节预告 前言:Kafka为何那么快(高效) 利用磁盘顺序写的优势 预读取后写入 尽量避免使用 in-me ...
- Apache kafka原理与特性(0.8V)
前言: kafka是一个轻量级的/分布式的/具备replication能力的日志采集组件,通常被集成到应用系统中,收集"用户行为日志"等,并可以使用各种消费终端(consumer) ...
- 【Kafka】Kafka Schema Registry 原理
1.概述 原文:https://www.dazhuanlan.com/2019/12/10/5deec4add22d4/ Confluent 公司为了能让 Kafka 支持 Avro 序列化,创建了 ...
- 深入浅出kafka原理-5-kafka同步副本ISR高低水位HW
kafka replication副本 所谓副本,通产指分布式系统中不同机器中保存相同的数据拷贝,本质就是一个只能追加写消息的提交日志 提供数据冗余.即使系统部分组件失效,系统依然能够继续运转,因而增 ...
- 深入浅出kafka原理-1-初识只作乍见之欢
目录 前言: 1.由来 2.特点 3.使用场景 4.两种模式 1.Kafka名词解释 2.Kafka历史由来 版本号 3.Kafka术语 前言: 1.由来 为什么使用消息队列? 从系统之间有通信需求开 ...
- kafka原理及面试套路
kafka原理及面试套路 一. 面试: 1.列举kafka的使用场景 2.Kafka消息是采用Pull模式,还是Push模式? 3. Kafka 与传统消息系统之间有三个关键区别 4. Kafka中是 ...
- kafka原理以及源码分析
1.什么是kafka以及kafka的基础架构 Kafka是一个高吞吐的分布式的消息系统,是基于发布/订阅模式的消息队列. 2. 术语 Producer:消息生产者,就是向 Kafka broker 发 ...
- 深入理解kafka原理
今天深入理解kafka原理,首先生产的原理图如下: 一.集群的成员关系: Kafka 使用 zookeeper 来维护集群成员的信息.每个 broker 都有个唯一标识符, 这个标识符可以在配置文件里 ...
最新文章
- Tablayout 多个界面使用一个fragment 的实例
- c 服务器文件是存在,客户端服务器在较大的文件的c文件传输问题
- Linux Kernel 3.10内核源码分析--块设备层request plug/unplug机制
- HttpHelper之我见
- VC6.0编写BHO 提示unresolved external symbol _main
- ts可展开注释_TS语法之装饰器(注解)
- margin 实现水平居中,垂直居中原理
- 机器学习第2课:单变量线性回归(Linear Regression with One Variable)
- leetcode刷题--python
- apache php 搭建 nagios 平台
- 如何获取Android移动终端设备唯一ID
- n=sizeof(a)/sizeof(int)的含义(C语言)
- web安全的一些专业术语介绍
- 阿里代码规范检查工具的安装使用以及阿里代码格式化
- VGA显示器屏幕文字模糊(稍有重影)的解决方案
- 基于python/scipy学习概率统计(2):伯努利分布(Bernoulli Distribution)
- 多商户商城系统功能拆解14讲-平台端会员等级
- HazelEngine 学习记录 - Shader Abstraction and Uniforms
- C语言作用域与生存期
- 关于jeecg 项目的莫名其妙的问题