基于tungsten API 同步mysql binlog出现EOF packet received的问题解决

本文记录了在使用Tungsten API进行MySQL Binlog同步时遇到的EOF问题及解决过程。在项目测试阶段,发现Tungsten在读取完一个Binlog文件后收到MySQL的EOF响应。排查源代码和线上环境未找到原因。最后在社区论坛中发现,多个slave使用相同serverId可能导致该问题。调整为不同的serverId后,问题得到解决。此经验强调了在DB问题排查时要重视可重现性,充分利用开源项目的问题论坛,以及深入了解MySQL多slave同步知识的重要性。
摘要由CSDN通过智能技术生成

        tungsten是一个开源的数据库同步工具,详细可参考官网(http://en.wikipedia.org/wiki/Tungsten

        项目需要,需要实时知道mysql更新的数据,因此需要同步对应mysql结点的binlog日志数据并解析,对于同步与解析tungsten 相关API都能实现。其中日志同步主要是RelayClient类,还解析是MysqlExtractor类,对于mysql日志解析,首先需要了解binlog日志格式,主要有(Mixed,row,statement三种),详细有时间会整理一篇文章说明其三种日志格式的区别,以及在解析过程中跟据应用以及服务器的需求选择不同日志,以及不同日志不同的解析等。

        此篇需要记录的是在同步RelayClient日志过程中,在项目结尾阶段,部署后,测试阶段,突然发现开发环境在读完一个Binlog日志后会收到mysql服务器返回EOF的问题,由于开发过程中修改了tungsten API相关代码,开始一直在排查源代码相关问题,以及线上mysql部署的问题,都未发现原因。对于mysql主动关闭感觉到不知所措。

         最后通过tungsten相关issuse论坛,有人提及多slave引起,以及查看mysql主从同步时,不同slave相关配制时 会配制不同的serverId,立即查看tungsten相关源码,其中有此项配制,由于测试环境与开发环境使用的是同一mysql结点,并且使用了同一s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值