开发者社区> 问答> 正文

新建一个表同时插入9万行记录进行初始化,canal超时重试导致客户端重复消

初始化sql类似下面这样:

drop table if exists fi_task_etl_init; create table fi_task_etl_init as select * from fi_task where state not in('invalid','creater_closed','close_co_rejected','close_co_cancelled');

canal日志如下。能否通过设置更长的超时时间 避免Connection reset?

2020-05-18 11:29:41.313 [New I/O server worker #1-1] INFO c.a.otter.canal.instance.core.AbstractCanalInstance - subscribe filter change to qcdbv2..* 2020-05-18 11:29:41.313 [New I/O server worker #1-1] WARN c.a.o.canal.parse.inbound.mysql.dbsync.LogEventConvert - --> init table filter : ^qcdbv2..*$ 2020-05-18 12:57:50.548 [destination = qcdbv2 , address = /172.19.109.177:3306 , EventParser] ERROR c.a.o.canal.parse.inbound.mysql.dbsync.DirectLogFetcher - I/O error while reading from client socket java.net.SocketException: Connection reset at java.net.SocketInputStream.read(SocketInputStream.java:210) ~[na:1.8.0_181] at java.net.SocketInputStream.read(SocketInputStream.java:141) ~[na:1.8.0_181] at java.io.BufferedInputStream.fill(BufferedInputStream.java:246) ~[na:1.8.0_181] at java.io.BufferedInputStream.read1(BufferedInputStream.java:286) ~[na:1.8.0_181] at java.io.BufferedInputStream.read(BufferedInputStream.java:345) ~[na:1.8.0_181] at com.alibaba.otter.canal.parse.driver.mysql.socket.BioSocketChannel.read(BioSocketChannel.java:109) ~[canal.parse.driver-1.1.4.jar:na] at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.DirectLogFetcher.fetch0(DirectLogFetcher.java:174) ~[canal.parse-1.1.4.jar:na] at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.DirectLogFetcher.fetch(DirectLogFetcher.java:85) ~[canal.parse-1.1.4.jar:na] at com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.dump(MysqlConnection.java:235) [canal.parse-1.1.4.jar:na] at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3.run(AbstractEventParser.java:265) [canal.parse-1.1.4.jar:na] at java.lang.Thread.run(Thread.java:748) [na:1.8.0_181]

原提问者GitHub用户VincentLiSH

展开
收起
Java工程师 2023-05-03 10:20:12 61 0
1 条回答
写回答
取消 提交回答
  • canal默认设置set net_write_timeout=1800,超过半小时mysql会断开链接

    MysqlConnection.updateSettings()方法

    原回答者GitHub用户agapple

    2023-05-04 14:27:18
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

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