开发者社区> 问答> 正文

canal的吞吐量锐减

2018-07-09 08:10:22.493 - clientId:1001 cursor:[mysql-bin.000274,21149132,1530956958000] address[/10.132.27.103:3306] 2018-07-09 10:11:27.493 - clientId:1001 cursor:[mysql-bin.000274,25141059,1530957528000] address[/10.132.27.103:3306]

发现canal日志报错: 2018-07-09 13:39:29.043 [destination = cube , address = /10.132.27.103:3306 , EventParser] ERROR c.a.o.canal.parse.inbound.mysql.dbsync.DirectLogFetcher - I/O error while reading from client socket java.io.IOException: Unexpected End Stream at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.DirectLogFetcher.fetch0(DirectLogFetcher.java:156) ~[canal.parse-1.0.21.jar:na] at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.DirectLogFetcher.fetch(DirectLogFetcher.java:78) ~[canal.parse-1.0.21.jar:na] at com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.dump(MysqlConnection.java:113) [canal.parse-1.0.21.jar:na] at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3.run(AbstractEventParser.java:209) [canal.parse-1.0.21.jar:na] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_55] 2018-07-09 13:39:29.044 [destination = cube , address = /10.132.27.103:3306 , EventParser] ERROR c.a.otter.canal.parse.inbound.mysql.MysqlEventParser - dump address /10.132.27.103:3306 has an error, retrying. caused by java.io.IOException: Unexpected End Stream at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.DirectLogFetcher.fetch0(DirectLogFetcher.java:156) ~[canal.parse-1.0.21.jar:na] at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.DirectLogFetcher.fetch(DirectLogFetcher.java:78) ~[canal.parse-1.0.21.jar:na] at com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.dump(MysqlConnection.java:113) ~[canal.parse-1.0.21.jar:na] at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3.run(AbstractEventParser.java:209) ~[canal.parse-1.0.21.jar:na] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_55] 2018-07-09 13:39:29.047 [destination = cube , address = /10.132.27.103:3306 , EventParser] ERROR com.alibaba.otter.canal.common.alarm.LogAlarmHandler - destination:cube[java.io.IOException: Unexpected End Stream at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.DirectLogFetcher.fetch0(DirectLogFetcher.java:156) at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.DirectLogFetcher.fetch(DirectLogFetcher.java:78) at com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.dump(MysqlConnection.java:113) at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3.run(AbstractEventParser.java:209) at java.lang.Thread.run(Thread.java:745)

今天(9号)发现canal的同步超级慢,原来每小时要更新几十次。今天个同步要花1-2个小时。 canal生产者环境正常,消费者也正常。有高手指点一下查问题的思路吗?

原提问者GitHub用户litanyuyuan

展开
收起
绿子直子 2023-05-09 08:23:50 97 0
2 条回答
写回答
取消 提交回答
  • 可以测试一下1.0.26-SNAPSHOT, 针对大批量数据DML同步的,建议调大一下jvm内存. 从我的测试来看只要内存资源够大, 解析速度还是非常稳定的

    参考FAQ里的性能:https://github.com/alibaba/canal/wiki/FAQ

    原回答者GitHub用户agapple

    2023-05-09 19:40:15
    赞同 展开评论 打赏
  • 随心分享,欢迎友善交流讨论:)

    根据日志信息,可以看到canal同步出现了socket读取异常的错误,可能是网络或者MySQL服务方面的问题导致。可以考虑以下方案:

    检查网络连接是否正常,尝试ping MySQL服务器,看是否有丢包或延迟等情况。

    检查MySQL服务器的负载情况,是否存在资源瓶颈或者慢查询等问题。

    如果网络和MySQL服务器都正常,可以尝试重启canal服务,或者检查canal的配置文件是否有误。

    如果以上方法都无法解决问题,可以考虑升级canal版本或者使用其他的数据同步工具。

    2023-05-09 10:12:21
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载