alibaba / canal

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

calnal-adapter1.1.5解析rabbitmq消息报错 #4544

Open believezhang opened 1 year ago

believezhang commented 1 year ago

Question

ERROR com.rabbitmq.client.impl.ForgivingExceptionHandler - Consumer com.alibaba.otter.canal.connector.rabbitmq.consumer.CanalRabbitMQConsumer$1@3de73a3f (amq.ctag-dO4LXMfNCF9duzlo2FXtaA) method handleDelivery for channel AMQChannel(amqp://canal@10.233.45.165:5672/,1) threw an exception for channel AMQChannel(amqp://canal@10.233.45.165:5672/,1)

com.rabbitmq.client.AlreadyClosedException: channel is already closed due to clean channel shutdown; protocol method: #method(reply-code=200, reply-text=Closed due to exception from Consumer (amq.ctag-dO4LXMfNCF9duzlo2FXtaA) method handleDelivery for channel AMQChannel(amqp://canal@10.233.45.165:5672/,1), class-id=0, method-id=0)

at com.rabbitmq.client.impl.AMQChannel.ensureIsOpen(AMQChannel.java:257) ~[na:na]

at com.rabbitmq.client.impl.AMQChannel.transmit(AMQChannel.java:426) ~[na:na]

at com.rabbitmq.client.impl.AMQChannel.transmit(AMQChannel.java:420) ~[na:na]

at com.rabbitmq.client.impl.recovery.RecoveryAwareChannelN.basicAck(RecoveryAwareChannelN.java:93) ~[na:na]

at com.rabbitmq.client.impl.recovery.AutorecoveringChannel.basicAck(AutorecoveringChannel.java:436) ~[na:na]

at com.alibaba.otter.canal.connector.rabbitmq.consumer.CanalRabbitMQConsumer$1.handleDelivery(CanalRabbitMQConsumer.java:116) ~[na:na]

at com.rabbitmq.client.impl.ConsumerDispatcher$5.run(ConsumerDispatcher.java:149) ~[na:na]

at com.rabbitmq.client.impl.ConsumerWorkService$WorkPoolRunnable.run(ConsumerWorkService.java:104) ~[na:na]

at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]

at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]

at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na] canal-adapter解析消息同步至es,当消息较多时,运行出现这种情况。 业务场景:mysql同步至canal-server,canal-server同步rabbitmq,canal-adapter消费同步至es。 选择不使用mq时,当有批量消息插入或更新时,canal-adapter就会挂调。请问是需要进行什么设置吗?请大神帮忙! 使用的都是镜像部署,HA集群部署。

albertfengjiajun commented 1 year ago

解决了吗,我也遇到这个问题

itfuyun commented 4 months ago

我1.1.7也是这个问题

haogedada commented 2 months ago

同出现该问题