kafka(七):消息格式

1.kafka消息格式:

        (1)一个Kafka的Message由一个固定长度的header和一个变长的消息体body组成
        (2)header部分由一个字节的magic(文件格式)和四个字节的CRC32(用于判断body消息体是否正常,是否丢包,数据不一样CRC32算出来的数字也是不一样的)构成。
            当magic的值为1的时候,会在magic和crc32之间多一个字节的数据:attributes(保存一些相关属性,比如是否压缩、压缩格式等等);如果magic的值为0,那么不存在attributes属性
        (3)body是由N个字节构成的一个消息体,包含了具体的key/value消息

2.kafka Log消息格式(如下图)

        (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日志文件

猜你喜欢

转载自blog.csdn.net/u010886217/article/details/83152944