canal icon indicating copy to clipboard operation
canal copied to clipboard

canal 1.1.5 不能实时同步mysql到elasticsearch,但通过adapter的api接口可以同步

Open koubalala opened this issue 3 years ago • 7 comments

Question

canal developer 1.1.5 canal adapter 1.1.5 jdk 1.8.0_291 mysql 8.0.26 elasticsearch 7.6.2 根据文档 搭建一个测试。 最终的效果是 只能通过adapter的 curl -X POST http://127.0.0.1:8081/etl/es7/product.yml 将数据同步到ES中 ,但无法实现 新增数据的实时同步到ES中。 查看日志 也没有发现错误,adapter 日志可以接收到新增插入数据的操作日志...... 不能够 实时性的 同步增量 数据 可能原因是什么? 有没有排查的方向。 搞了几天了 都无法实现预期的实时同步效果。

koubalala avatar Sep 13 '21 08:09 koubalala

层主跟我问题是一样的,环境也差不多....不过还没找到解决方式

hatakes avatar Dec 21 '21 12:12 hatakes

我也遇到了这个问题,在docker容器里面,前面还好好的,后面经常改了yml,就只能 curl 了,不能增量同步,配置都是按照官方文档上面修改的, 我觉得可能要把 adapter 切回1.1.4 再试试看

zhongjing avatar May 23 '22 11:05 zhongjing

我的还是配置问题,在canal-server 里面

这里必须写具体的表名,不然不能增量 canal.instance.filter.regex=test1.people,test1.people1

zhongjing avatar May 24 '22 02:05 zhongjing

我的问题解决了, 在canal-adapter里面 把mode 改成 transport,如果是 rest则不能增量同步 properties: mode: transport

zhongjing avatar Jun 30 '22 11:06 zhongjing

请替换canal-adapter的plugin目录下的client-adapter.es7x-1.1.5-jar-with-dependencies.jar

strugglexu avatar Aug 30 '22 07:08 strugglexu

看看是否配置了多个canalAdapters的group? 如果有多个group监听一个srcDataSources会存在一条消息被其他group消费掉的情况,如果有多个先只留下一个再试试。

GuoGuang avatar Oct 27 '22 15:10 GuoGuang

我的问题解决了, 在canal-adapter里面 把mode 改成 transport,如果是 rest则不能增量同步 properties: mode: transport

我的是rest模式,可以实现实时的增量同步. 但是我前面有配置这个选项: v1.1.6 版本 instance中的配置,具体到表名了

这里必须写具体的表名,不然不能增量
canal.instance.filter.regex=test1\\.people,test1\\.people1

cynen avatar Apr 03 '24 08:04 cynen