74.Kafka 的消息格式是怎么样的?

message 中的物理结构为:

message 物理结构

message 物理结构

参数说明:

关键字 解释说明
8 byte offset 在parition(分区)内的每条消息都有一个有序的id号,这个id号被称为偏移(offset),它可以唯一确定每条消息在parition(分区)内的位置。即offset表示partiion的第多少message
4 byte message size message大小
4 byte CRC32 用crc32校验message
1 byte “magic” 表示本次发布Kafka服务程序协议版本号
1 byte “attributes” 表示为独立版本、或标识压缩类型、或编码类型
4 byte key length 表示key的长度,当key为-1时,K byte key字段不填
K byte key 可选
value bytes payload 表示实际消息数据

不过,这是早期 Kafka 的版本,最新版本的格式,推荐阅读如下两篇文章:

当然,看懂这个数据格式,基本也能知道消息的大体格式。