至此事件的通用头分析结束。
紸意:这里的文档写的是Payload但实际分析的时候会发现,应该理解为前文概述中的post header实际的playload根据版本不同为1个字节,或者0个字节用于标识CRC算法,先做个引子后文会详细说明。
这里自描述了该二进制日志文件的版本2个字节无符号数:
记录了服务器的版本,50个字节字符串類型。
二进制文件创建的事件戳4字节无符号数:
这里的是每个事件的post header的长度的字节数组,每一个事件一个字节
那么根据这个数组,FD事件的Post Header的长度是多少根据官方文档,可以根据(事件的编号-1)作为索引获取:
至此第一个事件分析完毕。最后附上完整代码(注意:ParserHelper来自于BinlogMiner):