canal 日志中 ERROR c.a.otter.canal.client.adapter.es.support.ESTemplate ...document missing 产生的可能的原因

canal 日志中经常会有日志信息

2019-08-14 15:02:24.843 [pool-2-thread-1] ERROR c.a.otter.canal.client.adapter.es.support.ESTemplate - 	[index_user_v4/j9SX_DfjTB6mcqmLCEH84g][[index_user_v4][0]] DocumentMissingException[[_doc][class757542]: document missing]
2019-08-14 15:02:24.843 [pool-2-thread-1] ERROR c.a.otter.canal.client.adapter.es.support.ESTemplate - 	[index_user_v4/j9SX_DfjTB6mcqmLCEH84g][[index_user_v4][0]] DocumentMissingException[[_doc][class757543]: document missing]
2019-08-14 15:02:24.843 [pool-2-thread-1] ERROR c.a.otter.canal.client.adapter.es.support.ESTemplate - [index_user_v4/j9SX_DfjTB6mcqmLCEH84g][[index_user_v4][0]] DocumentMissingException[[_doc][class757546]: document missing]
2019-08-14 15:02:24.843 [pool-2-thread-1] ERROR c.a.otter.canal.client.adapter.es.support.ESTemplate - [index_sch_dept_v4/05lvG7DGSdqF66rN81BxEA][[index_sch_dept_v4][0]] DocumentMissingException[[_doc][593887]: document missing]

分析一波可能产生的原因,目前我碰到的主要是这几点:
1.可能是当前写入数据库数据过多,有部分展示的数据未来得及传入 es,两边同步不一致,导致该信息的产生,等canal 将数据完全导入后,该信息可自动消失

2.可能是 canal 程序故障导致数据库数据没有导入到 es,可以查相应 index 中最近数据,对比数据库,找到相对应时间段重新导入,或者数据量不是很大的话可以直接全量导入(我是用 datax 完成从 mysql 导入 es 的,而且是测试环境,所以数据不一致的时候,写一个 shell 脚本执行命令,每次只需要一个 sh 命令就可以补全数据差了)

3.可能是关系表中的主表已经删除了该条数据,导致数据库和 es 中都没有该条记录,而其他表未删除相关的数据记录,所以其他表在对该数据相关联的数据有操作时,会关联到当前 index,两相查看都没有,所以也会显示这样的信息

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值