博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Kafka] - Kafka内核理解:Message
阅读量:5321 次
发布时间:2019-06-14

本文共 587 字,大约阅读时间需要 1 分钟。

一个Kafka的Message由一个固定长度的header和一个变长的消息体body组成

header部分由一个字节的magic(文件格式)和四个字节的CRC32(用于判断body消息体是否正常)构成。当magic的值为1的时候,会在magic和crc32之间多一个字节的数据:attributes(保存一些相关属性,比如是否压缩、压缩格式等等);如果magic的值为0,那么不存在attributes属性

body是由N个字节构成的一个消息体,包含了具体的key/value消息

存储在磁盘的日志采用不同于Producer发送的消息格式,每个日志文件都是一个“log entries”序列,每一个log entry包含一个四字节整型数(message长度,值为1+4+N),一个字节的magic,四个字节的CRC32值,最终是N个字节的消息数据。每条消息都有一个当前Partition下唯一的64位offset,指定该消息的起始下标位置,存储消息格式如下:

这个“log entries”并非由一个文件构成,而是分成多个segment file(日志文件,存储具体的消息记录)和一个索引文件(存储每个segment文件的offset偏移量范围)。 结构如图所示:

 

转载于:https://www.cnblogs.com/liuming1992/p/6425492.html

你可能感兴趣的文章
小朋友学Python(4)
查看>>
博客功能的转变
查看>>
【模拟】NCPC 2014 D Dice Game
查看>>
字符串匹配
查看>>
OC语言基础知识
查看>>
c# Invoke和BeginInvoke 区别
查看>>
实验一 命令解释程序的编写
查看>>
Android应用资源---绘制资源类型(Drawable)(四)
查看>>
php服务器探针
查看>>
ubuntu下如何关闭某个端口?
查看>>
linux下如何映射宿主机中的文件到容器中?
查看>>
CodeForces - 981D Bookshelves
查看>>
【译】使用 CocoaPods 模块化iOS应用
查看>>
JavaScript中test函数
查看>>
设计模式之工厂方法模式
查看>>
计算机组成 计算机五大部件 计算器和存储器
查看>>
Chrom去掉"未选择任何文件"
查看>>
zdlzxg
查看>>
iOS上获得MAC地址
查看>>
Linux Samba安装与使用
查看>>