导读有这么一个需求: 有个数据抽取工具 要从mysql里面抽日志, 但是只需要某N种类型的数据.这种通常都是看下抽数工具有没得相关功能/选项来实现这个功能, 或者进行小小的二次开发来实现.但抽数工具众多..., 让中间件来做binlog的过滤, 这样既不影响主从库, 而且也不需要管抽数工具怎么实现.原理细节分析还好我们之前写过这种中间件的代码, 当时是叫的 流量镜像, 我们只需要在此基础上加个filter功能...怎么实现binlog的filter呢? 还好我们之前解析过binlog, 而且还写过从Binlog里面抽取指定表的脚本, 我们在此基础上修改下即可. 比如加上去掉delete操作这种操作....比如我们之前写的pymysqlbinlog.需要注意的关键点大概如下:由于我们是模拟的中间件, binlog是不需要落地的, 所以解析数据包的时候, 得算上mysql协议,比如seq之类的信息.而且存在过滤掉某部分...也就是只需要修改如下红色部分信息即可:其它的信息, 比如连接阶段的,或者一些查询信息, 我们应该原样返回给抽数工具(不能让它发现异常).演示实现过程就省略了, 完整代码放在文末的.