环境信息
canal version 1.0.24 mysql version 5.7.22
问题描述
canal 数据堆积到一定量后就报这个错 something goes wrong when acking data from server:null
下面是报错日志,求大神科普
File-WARN 2019/01/03 14:35:32.718 [Thread-4] [c.a.o.c.c.impl.ClusterCanalConnector.ack : 256 ] - something goes wrong when acking data from server:null com.alibaba.otter.canal.protocol.exception.CanalClientException: java.io.IOException: Broken pipe at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.ack(SimpleCanalConnector.java:324) at com.alibaba.otter.canal.client.impl.ClusterCanalConnector.ack(ClusterCanalConnector.java:253) at com.chtwm.achievement.canal.common.CanalClient.process(CanalClient.java:89) at com.chtwm.achievement.canal.common.CanalClient.access$200(CanalClient.java:17) at com.chtwm.achievement.canal.common.CanalClient$2.run(CanalClient.java:45) at java.lang.Thread.run(Thread.java:748) Caused by: java.io.IOException: Broken pipe at sun.nio.ch.FileDispatcherImpl.write0(Native Method) at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93) at sun.nio.ch.IOUtil.write(IOUtil.java:65) at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471) at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.writeWithHeader(SimpleCanalConnector.java:359) at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.ack(SimpleCanalConnector.java:318) ... 5 more
File-INFO 2019/01/03 14:35:37.770 [Thread-4] [c.a.o.c.c.impl.ClusterCanalConnector.ack : 261 ] - restart the connector for next round retry. File-INFO 2019/01/03 14:35:37.771 [Thread-4] [c.c.a.canal.common.CanalClient.process : 90 ] - compattarn destination ack_message batchId : 305 File-WARN 2019/01/03 14:35:37.808 [Thread-4] [c.a.o.c.c.impl.ClusterCanalConnector.getWithoutAck : 183 ] - something goes wrong when getWithoutAck data from server:null com.alibaba.otter.canal.protocol.exception.CanalClientException: something goes wrong with reason: something goes wrong with channel:[id: 0x4652480c, /10.100.201.1391:445213 => /10.100.201.1391:11111], exception=com.alibaba.otter.canal.server.exception.CanalServerException: ack error , clientId:1001 batchId:305 is not exist , please check
at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.receiveMessages(SimpleCanalConnector.java:302) at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.getWithoutAck(SimpleCanalConnector.java:279) at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.getWithoutAck(SimpleCanalConnector.java:252) at com.alibaba.otter.canal.client.impl.ClusterCanalConnector.getWithoutAck(ClusterCanalConnector.java:180) at com.chtwm.achievement.canal.common.CanalClient.process(CanalClient.java:81) at com.chtwm.achievement.canal.common.CanalClient.access$200(CanalClient.java:17) at com.chtwm.achievement.canal.common.CanalClient$2.run(CanalClient.java:45) at java.lang.Thread.run(Thread.java:748)
原提问者GitHub用户luoyang316
clientId:1001 batchId:305 is not exist , please check
估计服务端有异常产生了rollback操作,client参考一下example做一下重试即可
原回答者GitHub用户agapple
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。