canal在使用时因用户权限导致日志疯狂报错问题的解决方案

148 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

1、版本信息

canal 1.4.1,目前所知1.5.1还没有修复

2、官方的默认配置

由图中可知官方在默认配置时开启了实例需要用户权限认证,由文档可知当配置时就默认开启 了所以会导致疯狂报错。真正的错误原因是源码中对此用户传递的是空字符串。

2020-05-20 20:02:32.201 [Thread-3] ERROR c.a.o.canal.adapter.launcher.loader.CanalAdapterWorker - process error!
com.alibaba.otter.canal.protocol.exception.CanalClientException: something goes wrong when doing authentication: auth failed for user:
        at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.doConnect(SimpleCanalConnector.java:192) ~[canal.client-1.1.5-SNAPSHOT.jar:na]
        at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.connect(SimpleCanalConnector.java:115) ~[canal.client-1.1.5-SNAPSHOT.jar:na]
        at com.alibaba.otter.canal.adapter.launcher.loader.CanalAdapterWorker.process(CanalAdapterWorker.java:88) ~[client-adapter.launcher-1.1.5-SNAPSHOT.jar:na]

在这里插入图片描述在这里插入图片描述

3、 源码

由源码可知虽然配置了相关用户但是在集群模式下导致用户无法传递,故报用户权限认证失败。 在这里插入图片描述