想用canal做es和mysql同步
canal adapter 启动报错
2021-09-02 142104.935 [main] ERROR c.a.o.canal.adapter.launcher.loader.CanalAdapterLoader - Load canal adapter: es7 failed
java.lang.RuntimeException: java.lang.RuntimeException: java.lang.ClassCastException: com.alibaba.druid.pool.DruidDataSource cannot be cast to com.alibaba.druid.pool.DruidDataSource
44 common frames omitted
2021-09-02 142104.953 [main] INFO c.alibaba.otter.canal.connector.core.spi.ExtensionLoader - extension classpath dir: D:\canal.adapter\plugin
2021-09-02 142104.989 [main] INFO c.a.o.canal.adapter.launcher.loader.CanalAdapterLoader - Start adapter for canal-client mq topic: example-g1 succeed
2021-09-02 14:21:04.990 [main] INFO c.a.o.canal.adapter.launcher.loader.CanalAdapterService - ## the canal client adapters are running now
2021-09-02 14:21:04.990 [Thread-3] INFO c.a.otter.canal.adapter.launcher.loader.AdapterProcessor -> Start to connect destination: example <
2021-09-02 14:21:05.000 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8080"]
2021-09-02 14:21:05.010 [main] INFO org.apache.tomcat.util.net.NioSelectorPool - Using a shared selector for servlet write/read
2021-09-02 14:21:05.034 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path ''
2021-09-02 14:21:05.045 [main] INFO c.a.otter.canal.adapter.launcher.CanalAdapterApplication - Started CanalAdapterApplication in 39.458 seconds (JVM running for 40.02)
2021-09-02 14:21:05.077 [Thread-3] INFO c.a.otter.canal.adapter.launcher.loader.AdapterProcessor - > Subscribe destination: example succeed <
找了两天找不到问题,谢谢
druid 包冲突导致
下载源码包
wget https://github.com/alibaba/canal/archive/refs/tags/canal-1.1.5.tar.gz
解压后,使用IDEA打开,定位到 client-adapter.escore 模块的 pom.xml 的 druid 更新为
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<scope>provided</scope>
</dependency>
更新后,在项目根目录下执行
mvn clean package
后到 canal-canal-1.1.5/client-adapter/es7x/target 下 将打包好的 client-adapter.es7x-1.1.5-jar-with-dependencies.jar 替换掉 canal-adapter/plugin 下原来的