天天看點

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消息

備注:Kafka 0.10.0之前版本的格式

kafka(七):消息格式

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日志檔案

kafka(七):消息格式

3.參考

1.https://blog.csdn.net/u013256816/article/details/80300225