0
点赞
收藏
分享

微信扫一扫

wireshark 之 kafka协议分析1

龙驹书房 2022-03-14 阅读 39

文章目录

协议基本数据类型

固定宽度类型

变长数据类型

数组类型

请求响应结构

用wireshark抓下包看看

kafka用的2.11版本, java客户端用的是2.7的版本

我们追踪第一个tcp流数据看下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GBpwghII-1647222224627)(F:\desktop\学习笔记\personal_note\middleware\mq\kafka\kp-1.png)]

我们可以看到三次握手后, 客户端会发送一个request请求

我们看下请求内容

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VmKP2OTY-1647222224629)(F:\desktop\学习笔记\personal_note\middleware\mq\kafka\kp-2.png)]

请求格式

RequestMessage => ApiKey ApiVersion CorrelationId ClientId RequestMessage
ApiKey => int16
ApiVersion => int16
CorrelationId => int32
ClientId => string
RequestMessage => MetadataRequest | ProduceRequest | FetchRequest | OffsetRequest | OffsetCommitRequest | OffsetFetchRequest
字段名说明
ApiKey一个数字id, 表示是哪种请求(meta请求, 生产请求, 拉取请求等)
ApiVersion表示这个api的版本号, 会关系到响应格式
CorrelationId用户提供的整数数据, 服务器不会修改, 直接通过响应传回。
ClientId这是用户提供的客户端id。

响应格式

Response => CorrelationId ResponseMessage
CorrelationId => int32
ResponseMessage => MetadataResponse | ProduceResponse | FetchResponse | OffsetResponse | OffsetCommitResponse | OffsetFetchResponse
字段名说明
CorrelationId服务端回传客户端请求发过来的CorrelationId内容

再用wireshark看下请求响应的包

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CGPPhjTX-1647222224629)(F:\desktop\学习笔记\personal_note\middleware\mq\kafka\kp-2.png)]

这个是请求协议数据, 从蓝底字开始分析字节数据内容

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-48mYQOaj-1647222224630)(F:\desktop\学习笔记\personal_note\middleware\mq\kafka\kp-3.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iF0oNqCM-1647222224631)(F:\desktop\学习笔记\personal_note\middleware\mq\kafka\kp-4.png)]

这个是响应的协议数据, 第一个图是解析后的内容 , 包含了服务端支持的共43个API协议

接下来分析第二个图中的字节数据含义, 从蓝底字节开始

现在通过抓包分析, 大家应该对kafka协议的请求响应消息格式有了更清楚直观的认识, 接下来我们再学习kafka协议的其他内容。

举报

相关推荐

0 条评论