赞
踩
(1)一个Kafka的Message由一个固定长度的header和一个变长的消息体body组成
(2)header部分由一个字节的magic(文件格式)和四个字节的CRC32(用于判断body消息体是否正常,是否丢包,数据不一样CRC32算出来的数字也是不一样的)构成。
当magic的值为1的时候,会在magic和crc32之间多一个字节的数据:attributes(保存一些相关属性,比如是否压缩、压缩格式等等);如果magic的值为0,那么不存在attributes属性
(3)body是由N个字节构成的一个消息体,包含了具体的key/value消息
备注:Kafka 0.10.0之前版本的格式
(1)存储在磁盘的日志采用不同于Producer发送的消息格式,
(2)每个日志文件都是一个“log entries”序列
(a)每一个log entry包含一个四字节整型数(message长度,值为1+4+N)
(b)一个字节的magic
(c)四个字节的CRC32值
(d)最终是N个字节的消息数据。每条消息都有一个当前Partition下唯一的64位offset
(3)其实这个log entries也不是一个文件,是一个index(索引文件)和一个log日志文件
1.https://blog.csdn.net/u013256816/article/details/80300225
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。