你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
输入关键字进行搜索
搜索:
发现
分享
文章
活动
登录
身安不如心安,屋宽不如心宽 。
mongodb没有同步到elasticsearch问题
Elasticsearch
| 作者
chenkongzhang
| 发布于2019年12月11日 | 阅读数:
1822
分享到:
QQ空间
新浪微博
微信
QQ好友
印象笔记
有道云笔记
之前一直用mongo-connector来同步商品数据库到es,但是昨天重启了下es,导致在重启期间内的mongodb数据没有同步到es,重启mongo-connector也没有用。
重启mongo-connector后数据的修改增加都没有问题,就是那个时间段的数据丢失
没有找到相关结果
已邀请:
与内容相关的链接
提交
2 个回复
匿名用户
赞同来自:
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 对新版本不太支持了吧,都不怎么更新了。
要回复问题请先
登录
或
注册
发起人
chenkongzhang
活动推荐
Jun
17
搜索客 Meetup 讲师招募(长期有效)
线上
·
6-17 周一
·
进行中
Apr
25
第25届 GOPS 全球运维大会暨研运数智化技术峰会 · 深圳站
深圳
·
4-25 周五
·
进行中
Apr
28
【直播预告】开源智能搜索与知识管理革新 —— Coco AI 全景解读
线上直播
·
4-28 周一
·
报名中
May
15
Workshop | 搜索服务统一治理(跨引擎多个集群监控管理、流量管控、服务编排)
北京
·
5-15 周四
·
报名中
May
16
2025XCOPS智能运维管理人年会
广州
·
5-16 周五
·
报名中
相关问题
elasticsearch scroll查询的原理没太懂
我来写第一个帖子-你们都是什么时候知道elasticsearch的?
怎么解决elasticsearch集群占用太多虚拟内存(VIRT)的问题?占用了几十个G,有什么可以对它进行限制的相关设置吗?
elasticsearch 设置 node.data: false 依然有数据
集群稳定性的一些问题(一定量数据后集群变得迟钝)
ElasticSearch-Hadoop的目標是什麼呢??
elasticsearch functionScoreQuery scriptFunction效率问题
跨集群数据同步方案讨论
请教elasticsearch出现unassigned shards根本原因
如何清理Elasticsearch特定时间段数据?
Elasticsearch聚合操作的时间复杂度是O(n)吗?
问题状态
最新活动:
2019-12-12 14:55
浏览:
1822
关注:
2
人
2 个回复
匿名用户
赞同来自:
估计没有对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
赞同来自: