ELK,萌萌哒

mongodb没有同步到elasticsearch问题

Elasticsearch | 作者 chenkongzhang | 发布于2019年12月11日 | 阅读数:1569

之前一直用mongo-connector来同步商品数据库到es,但是昨天重启了下es,导致在重启期间内的mongodb数据没有同步到es,重启mongo-connector也没有用。
重启mongo-connector后数据的修改增加都没有问题,就是那个时间段的数据丢失
已邀请:
匿名用户

匿名用户

赞同来自:

mongo-connector  本身就是个垃圾东西。
估计没有对oplog,做失败的重试,当然,失败的重试,也会导致数据重复,下游需要幂等性。
一般发生在何种事情的,唯一办法是找到,mongo-connector 消费oplog的原理,找到消费oplog的时间点,将这个时间点还原到
失败的时候的那条oplog日志的时间,这样重启mongo-connector 后,即可从oplog 那条日志开始消费。(需要先将es,重启后的数据删除或者还原)
mongo-connector  这玩意的原理,就是解析 mongodb oplog 日志表。
一条一条解析,然后按照CRUD的形式,对ES 中的数据进行增删改查。
 
最好不要用这些 第三方的东西,都是半成品。做这种软件,必须要考虑,幂等性,分布式,失败,故障,数据重复,数据丢失等一切可能才行。
 
一般情况,数据重复,都是利用 主键ID,mongodb,应该是objectId,如果是mysql 那就是主键ID,因此ES 中的ID 也是唯一的,可以保证,数据不重复,幂等性。
数据不丢失,只要能重复消费oplog就行了。
 
 
 

U5years

赞同来自:

mongo-connector 对新版本不太支持了吧,都不怎么更新了。

要回复问题请先登录注册