Kafak入门第三课:kafka数据格式及各版本占用的空间大小对比
0.9版本
1、消息集Message set一个消息集中包含一条或多条消息,消息集不仅是存储在磁盘及网络传输的基本形式,而且是kafka压缩的基本单元。2、消息Recode
一个recode是由多个key-value键值对组成,以下介绍各个key的含义。CRC32,大小4B。CRC校验值,校验范围为magic到value之间。magic,大小1B。 消息格式版本号。attributes,大小1B。 消息类型,最低三位为压缩类型。0 无 1 gzip 2 snappy 3 lz4。key length,大小4B。 key的长度,为-1表示没有设置key。key,可选。没有设置key就没有该字段。value length,大小4B。 value的长度,为-1表示没有设置消息。value,可选。 这是消息体。3、日志头部log_overheader
每一个recode都有一个日志头部包含offset和message size两个字段。offset,大小8B。 记录消息在partition中的偏移量。message size,大小4B。 表示消息的总大小。4、最小长度当没有设置key和value时,recode长度最小,为4B+1B+1B+4B+4B=14B。日志头部为8B+4B=12B。
所以消息总大小和.log文件大小为14B+12B=26B。
2、0.10
1、对比
对比0.9版本,新增了一个timestamp字段,大小8B。
且attributes字段第四位启用,标记为时间戳类型。0为CreateTime类型,1为LogAppendTime类型。2、最小长度
当没有设置key和value时,recode长度最小,为4B+1B+8B+1B+4B+4B=22B。
日志头部为8B+4B=12B。所以消息总大小为22B+12B=34B。
0.11版本
1、版本变化对于key length和value length这样记录长度的字段,以int类型保存需要4个字节。
在0.11中引入了变长整型(varint&varlong)和zigzag编码,以此来节约存储空间。
记录长度字段的数值和占用字节的关系:[0,63]占用1B [64,8191]占用2B [8192,108575]占用3B。2、消息集Recode Batch一个recode batch包含一条或多条消息。每个消息集都分为header和recodes两部分。压缩时只压缩recodes不压缩header。recodes部分则包含一条或多条recode记录。header包含了所有recode的最大最小时间戳、offset、recode个数等信息,共占用61B空间。2、消息Recode
一个recode是由多个key-value键值对组成,以下介绍各个key的含义。length varint 。记录本recode的长度。attributes 1B 。 保留字段,暂时没用。timestamp delta varlong 。 保存此recode的时间戳与header中最小时间戳的差值。offset delta varint。 保存此recode的offset与header中最小offset的差值。key length varint。 没有设置key则为0,占用1B。key,可选。没有设置key就没有该字段。value length varint。 没有设置key则为0,占用1B。value,可选。 这是消息体。headers count varint 。 记录本recode中headers的数量。没有则为0,占用1B。headers,可选。可以有多个。以前很多应用级别的设置要嵌在消息体中,现在设置在headers中即可。有四个字段。header key\header value\header key length\header value length。长度都是varint类型。header key是utf8类型。3、最小长度
当key value都为null,且recode中未设置header,则recode达到理论最小长度:7个变长整形字段,即7B。
则该消息的最小长度:61B+7B=68B.当一个消息集中含有的recode数较少时,由于消息集的header占用61B,
所以0.11版本可能会占用更大的存储。当消息集中recode数较多时,则节省空间较为明显。4、各版本对比
eg. 假设一个消息集中含100个key value都为空的消息时,占用大小对比。0.9版本: 26B*10=260B. 0.10版本:34B*10=340B.0.11版本:61B+7B*10=131B.
Kafak入门第三课:kafka数据格式及各版本占用的空间大小对比相关推荐
- C# 编程入门第三课 类型转换,++,关系运算符,bool类型(布尔类型),逻辑运算符,判断闰年,结构
C# 编程入门第三课 文章目录 C# 编程入门第三课 1. 类型转换 2. ++,-- 3. 关系运算符 4. bool 类型(布尔类型) 5. 逻辑运算符 6.判断闰年 7. 结构 1. 类型转换 ...
- Linux入门第三集!JDK8的Linux版本资源分享!jdk-8u301-linux-x64.rpm官方资源分享!Linux安装JDK8教程!
Linux入门第三集!JDK8的Linux版本资源分享!jdk-8u301-linux-x64.rpm官方资源分享!Linux安装JDK8教程! 提取码均为0916 jdk-8u301-linux-x ...
- java包名和类名可以一样吗_Java入门第三课:Java基本语法
Java基础 编写Java程序时,应注意以下几点: 1.大小写敏感: Java是大小写敏感的,这就意味着标识符Hello与hello是不同的.有些操作系统不区分大小写,不区分的话,文件名是不完全正确的 ...
- OpenGL入门第三课--矩阵变换与坐标系统
在 OpenGL中,物体在被渲染到屏幕之前需要经过一系列的坐标变换,听起来有点吓人:不过呢如果有一定的线性代数的基础利用矩阵变换,其实也就没那么难了.即使没学过线性代数,只需要了解一些基本的矩阵运算也 ...
- 韩语学习之——韩语基础入门第三课复合元音
一 概念 元音分类: 单元音 复合元音 二 复合元音 2.1 ㅣ +单元音 元音 结合前 结合后 汉语发音 ㅏ ㅣ+ㅏ ㅑ 牙(ya) ㅓ ㅣ+ㅓ ㅕ 要(yao) ㅗ ㅣ+ㅗ ㅛ 有(you) ㅜ ...
- python入门第三课(初中生学Python)
继续学习本专栏,请关注初中生学习python专栏
- 打开程序时固定位置_新手入门第五课:免费开源图像处理程序GIMP之矩形选择工具...
GIMP是一款图像处理软件,是跟Photoshop同一类型的软件,为了方便介绍,后面每篇相关GIMP图像处理软件的介绍文章的开头,我都将插入一段文字,用于介绍GIMP是什么,让不熟悉的朋友知道这是干什 ...
- 以二进制输出64位类型的数据_Java入门第五课:Java基本数据类型与变量的声明...
数据类型 基本数据类型 Java有八种基本类型.六种数字类型(四个整数型(默认是int 型),两个浮点型(默认是double 型)),一种字符类型,一种布尔型. Byte.short.int.long ...
- C# 编程入门第五课,VS2019程序调试,for循环,水仙花数,Console.Write,又一种类型变换,三元表达式,产生随机数
C# 编程入门第五课 文章目录 C# 编程入门第五课 1. VS2019程序调试 2. for循环 3. 水仙花数 4. Console.Write() 5. 又一种类型变换 6. 三元表达式 7.产 ...
最新文章
- usaco The Castle
- MongoDB索引原理和具体使用
- 无法查找网络工作组计算机,XP系统弹出“无法查看工作组计算机”提示怎么办?...
- picturectrl控件中加载图片并显示_如何在EasyX窗体中显示图片
- Android通过透明度设置背景变暗
- 多层架构模型中的BLL 与 Model的解释
- 剑指 offer代码解析——面试题39推断平衡二叉树
- 计算机中的方法,计算机中文本的表示方法
- 微前端子应用加载 vue-pdf 时跨域问题解决
- java索引越界异常_如何处理Java数组索引越界异常?
- 常见的3D打印文件格式都有哪些
- vue input 只允许输入整数、整数和小数(保留小数点后两位)
- Javascript Module Pattern,公共属性不能获取到最新值(Javascript revealing module pattern, public properties)
- ffi一些常见的错误
- 【盛天体育出品】天津仁爱学院“彩虹”运动场来了
- 3DMAX和MAYA的区别
- TestNG-学习笔记
- VMware 虚机启动失败问题
- 什么是 Android Jetpack?
- PCB线路板表面处理工艺的优缺点合集
热门文章
- Machine Learning Basics(2)
- 分享一些好玩有趣的软件给你
- 亲测有效,一招解决错误:This application failed to start because not Qt platform plugin could be initialized.
- 微信开发——熟悉支付流程
- 计算机系个性策划书,《计算机系12月心理活动策划书》.doc
- PCRP21-100-1-SSI-KAB5M VOITH
- 理解计算机3D图形学中的坐标系变换
- dedecms模板配置大概流程
- 解析FPS,刷新率,垂直同步
- 企业中如何做好文化建设?