开发者社区> 问答> 正文

canal adapter向es同步时会重复提交以往的请求

环境信息

canal version 1.1.3 mysql version 5.7

问题描述

数据库的一次DML操作会触发canal adapter向ES发起插入或更新请求,但是这样的请求会添加到一个Request中,所以之后的DML操作会继续向同一个数组中添加。向ES请求时会依次调用这个Request中的内容,导致以前的请求在之后每次触发时都会被调用。

具体的地方是EsTemplate类里面的 getBulk().add() 相关的代码,request会增加,但是一直用的是同一个request。 在commitBulk提交到ES之后会遍历返回值,这个时候能看到以前的变更都被提交到es了。

原提问者GitHub用户mantfort

展开
收起
云上静思 2023-05-04 12:09:00 85 0
1 条回答
写回答
取消 提交回答
  • 已经修复

    原回答者GitHub用户rewerma

    2023-05-05 10:26:25
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载