我们都知道操作系统每次从磁盘读写数据的时候,需要先寻址找到数据在磁盘上的物理位置,然后再进行数据读写,如果是HDD硬盘,由于它要移动磁头,所以这个寻址需要较长时间,如果数据是按照顺序读写,它只要寻址一次,就可以连续读写下去,这样就会省去大部分寻址时间,因此性能会比随机读写提升几十倍,如果是SSD硬盘顺序读写的性能要比随机读写快几倍

而Kafka充分利用磁盘的这个特性,它接收消息后,就按顺序地写入对应分区的log文件中,一个文件写满了,就开启一个新的文件顺序写下去。当消费数据时,就从某个log文件中的某个位置开始,顺序把消息读出来,这种设计几乎可以媲美内存的随机访问

另外Kafka还利用操作系统的PageCache机制,在内存中给磁盘上的文件建立缓存,当程序在调用系统API读写文件时,可以直接读取内存中缓存的log文件副本,这无异是给消息读写又加了一个涡轮增压。因而Kafka从发布之后就一发不可收拾,牢牢盘踞数据集成传输的头把交椅,时至今日

国内最大最权威的 Kafka中文社区 ,在这里你可以结交各大互联网Kafka大佬以及近2000+Kafka爱好者,一起实现知识共享,实时掌控最新行业资讯,免费加入中~

Kafka原理——Kafka为何如此之快?相关推荐

  1. Kafka原理+操作+实战

    Kafka原理+操作+实战 前面我和大家交流了kafka的部署安装.对于部署安装这都是小意思,不值得太多的提及.重点还是需要知道kafka原理.熟练掌握kafka命令以及灵活用于kafka场景. 干货 ...

  2. 深入浅出kafka原理-2-Kafka为何那么快(高效)

    目录 前言:Kafka为何那么快(高效) 1.文件系统 2.降低时间复杂度 3.零拷贝 4.下一节预告 前言:Kafka为何那么快(高效) 利用磁盘顺序写的优势 预读取后写入 尽量避免使用 in-me ...

  3. Apache kafka原理与特性(0.8V)

    前言: kafka是一个轻量级的/分布式的/具备replication能力的日志采集组件,通常被集成到应用系统中,收集"用户行为日志"等,并可以使用各种消费终端(consumer) ...

  4. 【Kafka】Kafka Schema Registry 原理

    1.概述 原文:https://www.dazhuanlan.com/2019/12/10/5deec4add22d4/ Confluent 公司为了能让 Kafka 支持 Avro 序列化,创建了 ...

  5. 深入浅出kafka原理-5-kafka同步副本ISR高低水位HW

    kafka replication副本 所谓副本,通产指分布式系统中不同机器中保存相同的数据拷贝,本质就是一个只能追加写消息的提交日志 提供数据冗余.即使系统部分组件失效,系统依然能够继续运转,因而增 ...

  6. 深入浅出kafka原理-1-初识只作乍见之欢

    目录 前言: 1.由来 2.特点 3.使用场景 4.两种模式 1.Kafka名词解释 2.Kafka历史由来 版本号 3.Kafka术语 前言: 1.由来 为什么使用消息队列? 从系统之间有通信需求开 ...

  7. kafka原理及面试套路

    kafka原理及面试套路 一. 面试: 1.列举kafka的使用场景 2.Kafka消息是采用Pull模式,还是Push模式? 3. Kafka 与传统消息系统之间有三个关键区别 4. Kafka中是 ...

  8. kafka原理以及源码分析

    1.什么是kafka以及kafka的基础架构 Kafka是一个高吞吐的分布式的消息系统,是基于发布/订阅模式的消息队列. 2. 术语 Producer:消息生产者,就是向 Kafka broker 发 ...

  9. 深入理解kafka原理

    今天深入理解kafka原理,首先生产的原理图如下: 一.集群的成员关系: Kafka 使用 zookeeper 来维护集群成员的信息.每个 broker 都有个唯一标识符, 这个标识符可以在配置文件里 ...

最新文章

  1. Tablayout 多个界面使用一个fragment 的实例
  2. c 服务器文件是存在,客户端服务器在较大的文件的c文件传输问题
  3. Linux Kernel 3.10内核源码分析--块设备层request plug/unplug机制
  4. HttpHelper之我见
  5. VC6.0编写BHO 提示unresolved external symbol _main
  6. ts可展开注释_TS语法之装饰器(注解)
  7. margin 实现水平居中,垂直居中原理
  8. 机器学习第2课:单变量线性回归(Linear Regression with One Variable)
  9. leetcode刷题--python
  10. apache php 搭建 nagios 平台
  11. 如何获取Android移动终端设备唯一ID
  12. n=sizeof(a)/sizeof(int)的含义(C语言)
  13. web安全的一些专业术语介绍
  14. 阿里代码规范检查工具的安装使用以及阿里代码格式化
  15. VGA显示器屏幕文字模糊(稍有重影)的解决方案
  16. 基于python/scipy学习概率统计(2):伯努利分布(Bernoulli Distribution)
  17. 多商户商城系统功能拆解14讲-平台端会员等级
  18. HazelEngine 学习记录 - Shader Abstraction and Uniforms
  19. C语言作用域与生存期
  20. 关于jeecg 项目的莫名其妙的问题

热门文章

  1. 如何仅使用电话传输代码
  2. Windows Powershell 计划任务
  3. Microsoft Store 访问加速教程(需科学上网)
  4. 如何隐藏Android模拟器下方的虚拟按键(隐藏模拟器属性即可)
  5. 川崎机器人零点调整_机器人零点标定方法
  6. php对接微信H5 V3版本支付不使用SDK
  7. ABAQUS几何非线性问题:薄板大变形(如何定义材料方向)
  8. 一个成年人的童年世界
  9. Tik Tok运营:海外抖音TikTok网红营销指南
  10. 【信息学奥赛】1015:计算并联电阻的阻值(C++)