Produce消息格式
注意: 此消息格式只针对api_key为0,api_version为2。

字段说明
Request Header
- api_key:消息类型。
- api_version:消息格式版本。
- correlation_id:序号,由客户端产生,单调递增,服务端不做任何修改,在Response中会回传给客户端。
- client_id length:client_id值所占字节长度。
- client_id value:客户端id,可为null。
Request Body
- acks:指定服务端响应此请求之前,需要有多少Replica成功复制了此请求的消息。-1表示整个ISR都完成了复制。
- timeout:超时时间,单位是ms。
- topic array size:topic数组大小,也即包含的topic个数。
- topic name length:topic名占用字节长度。
- topic name value:topic名占用字节空间。
- partition array size:partition数组大小,也即包含的partition个数。
- partition_id:partition编号。
- record_set length:partition数据占用字节长度。
- record_set value:partition数据占用字节空间。
- offset:根据magic选定是相对于partition还是segment的偏移量。
- size:message data的大小。
- CRC32:消息的检验吗。
- magic:魔术标识,与消息格式有关,取值为0或1。当magic为0时,消息的offset使用绝对offset且消息格式中没有timestamp的部分;当magic为1时,消息的offset使用相对offset且消息格式中存在timestamp部分。所以,magic值不同,消息的长度时不同的。
attributes:第0~2位表示消息使用的压缩类型,0表示无压缩,1表示gzip压缩,2表示snappy压缩,3表示lz4压缩。第3位表示时间戳类型,0表示创建时间,1表示追加时间。 - timestamp:时间戳,其含义由attributes第3位决定。
- key length:key占用字节长度。
- key value:key占用空间。
- value length:消息value占用字节长度。
- value:消息value占用空间。
网友评论