alibaba / canal

阿里巴巴 MySQL binlog 增量订阅&消费组件
Apache License 2.0
28.44k stars 7.6k forks source link

java.io.IOException: end of stream when reading header 异常,版本v_1.1.4 #3065

Open wang4856304 opened 4 years ago

wang4856304 commented 4 years ago

com.alibaba.otter.canal.protocol.exception.CanalClientException: java.io.IOException: end of stream when reading header at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.getWithoutAck(SimpleCanalConnector.java:325) at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.getWithoutAck(SimpleCanalConnector.java:295) at com.easted.service.impl.ClientServiceImpl.parseBinlog(ClientServiceImpl.java:65) at com.easted.CanalClientApp.lambda$run$0(CanalClientApp.java:38) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: java.io.IOException: end of stream when reading header at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.read(SimpleCanalConnector.java:413) at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.readNextPacket(SimpleCanalConnector.java:401) at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.readNextPacket(SimpleCanalConnector.java:385) at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.receiveMessages(SimpleCanalConnector.java:330) at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.getWithoutAck(SimpleCanalConnector.java:323) ... 6 common frames omitted 2020-09-25 17:30:02.701 [pool-7-thread-1] INFO com.easted.service.impl.ClientServiceImpl - server=10.96.123.138, port=11111, username=canal, password=snkEas4532T 2020-09-25 17:30:02.702 [pool-7-thread-1] INFO com.easted.service.impl.ClientServiceImpl - reconnect canal server, retry 1 times 2020-09-25 17:30:12.703 [pool-7-thread-1] ERROR com.easted.service.impl.ClientServiceImpl - retry exception com.alibaba.otter.canal.protocol.exception.CanalClientException: java.net.ConnectException: Connection refused at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.doConnect(SimpleCanalConnector.java:198) at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.connect(SimpleCanalConnector.java:115) at com.easted.service.impl.ClientServiceImpl.connect(ClientServiceImpl.java:56) at com.easted.service.impl.ClientServiceImpl.reconnect(ClientServiceImpl.java:108) at com.easted.service.impl.ClientServiceImpl.parseBinlog(ClientServiceImpl.java:80) at com.easted.CanalClientApp.lambda$run$0(CanalClientApp.java:38) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: java.net.ConnectException: Connection refused at sun.nio.ch.Net.connect0(Native Method) at sun.nio.ch.Net.connect(Net.java:454) at sun.nio.ch.Net.connect(Net.java:446) at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:648) at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.doConnect(SimpleCanalConnector.java:150)

bug4j commented 3 years ago

我也出现了这个问题,具体情况如下:

deployer版本:1.1.4 admin版本:1.1.4 系统:centos 7.4

描述:

如果canal不主动注册到admin,(不注册,或者手动在admin中添加) 客户端时可以正常连上 deployer 的,一旦deployer 主动注册到admin, 客户端建立连结的时候就会报这个错。。。

客户端代码抄的demo里面的代码。

deployer配置

# tcp bind ip
canal.ip = 0.0.0.0
# register ip to zookeeper
canal.register.ip = 10.11.3.24 #我的canal所在机器的ip
canal.port = 11111
canal.metrics.pull.port = 11112
# canal instance user/passwd
# canal.user = canal
# canal.passwd = E3619321C1A937C46A0D8BD1DAC39F93B27D4458

# canal admin config
canal.admin.manager = 10.11.2.108:8089
canal.admin.port = 11110
canal.admin.user = admin
canal.admin.passwd = 4ACFE3202A5FF5CF467898FC58AAB1D615029441
canal.admin.register.auto = true
canal.admin.register.cluster = 

不知道是配置错了还是别的问题....

shouziws commented 3 years ago

我是canal使用admin方式启动java客户端链接报 Exception in thread "main" com.alibaba.otter.canal.protocol.exception.CanalClientException: java.io.IOException: end of stream when reading header at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.doConnect(SimpleCanalConnector.java:190) at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.connect(SimpleCanalConnector.java:114) at cc.DBHelper.main(DBHelper.java:29) Caused by: java.io.IOException: end of stream when reading header at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.read(SimpleCanalConnector.java:431) at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.readNextPacket(SimpleCanalConnector.java:419) at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.readNextPacket(SimpleCanalConnector.java:403) at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.doConnect(SimpleCanalConnector.java:176) ... 2 more

Process finished with exit code 1

beibeiaishuijiao commented 3 years ago

请问这个问题现在解决了吗?我也遇到了,一直拒绝连接

yilongchuan commented 3 years ago

请问这个问题现在解决了吗?我也遇到了,一直拒绝连接

请问您解决了吗,我现在也遇到了

zhouwei4780 commented 3 years ago

请问这个问题现在解决了吗?我也遇到了,一直拒绝连接

请问您解决了吗,我现在也遇到了

解决了么。。。。。

zhouwei4780 commented 3 years ago

请问这个问题现在解决了吗?我也遇到了,一直拒绝连接

解决了么。。。。。

zhouwei4780 commented 3 years ago

我是canal使用admin方式启动java客户端链接报 Exception in thread "main" com.alibaba.otter.canal.protocol.exception.CanalClientException: java.io.IOException: end of stream when reading header at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.doConnect(SimpleCanalConnector.java:190) at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.connect(SimpleCanalConnector.java:114) at cc.DBHelper.main(DBHelper.java:29) Caused by: java.io.IOException: end of stream when reading header at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.read(SimpleCanalConnector.java:431) at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.readNextPacket(SimpleCanalConnector.java:419) at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.readNextPacket(SimpleCanalConnector.java:403) at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.doConnect(SimpleCanalConnector.java:176) ... 2 more

Process finished with exit code 1

解决了么。。。。。

zhouwei4780 commented 3 years ago

我也出现了这个问题,具体情况如下:

deployer版本:1.1.4 admin版本:1.1.4 系统:centos 7.4

描述:

如果canal不主动注册到admin,(不注册,或者手动在admin中添加) 客户端时可以正常连上 deployer 的,一旦deployer 主动注册到admin, 客户端建立连结的时候就会报这个错。。。

客户端代码抄的demo里面的代码。

deployer配置

# tcp bind ip
canal.ip = 0.0.0.0
# register ip to zookeeper
canal.register.ip = 10.11.3.24 #我的canal所在机器的ip
canal.port = 11111
canal.metrics.pull.port = 11112
# canal instance user/passwd
# canal.user = canal
# canal.passwd = E3619321C1A937C46A0D8BD1DAC39F93B27D4458

# canal admin config
canal.admin.manager = 10.11.2.108:8089
canal.admin.port = 11110
canal.admin.user = admin
canal.admin.passwd = 4ACFE3202A5FF5CF467898FC58AAB1D615029441
canal.admin.register.auto = true
canal.admin.register.cluster = 

不知道是配置错了还是别的问题....

解决了么。。。。。

micat1 commented 6 months ago
注释掉这个canal.tcp.server.host: 127.0.0.1:11111
改为canal.tcp.zookeeper.hosts: 127.0.0.1:2181

screen_shot_1712804499232 改成ClusterCanalConnector也就是使用canal.tcp.zookeeper.hosts就不报错了,