[开源重构]Elasticsearch/OpenSearch Sync Tool
背景
- 因为要做集群灾备,需要在主备两个集群之间持续性地同步数据,调查过多个方案:
- CCR(Cross-cluster replication) 官方工具,可惜需要收费,无奈放弃 😦
- esm 如官方文档说所,最大的特点快. 可惜也发现不少问题:
- 同步后发现数据不全,一般需要采用多次执行的方式来补全数据;
- 调查后发现,其采用的是获取源数据后,使用多个 goroutine 将数据通过
bulk写入目标index, 会造成目标index重复写入很多相同数据的问题; - 更改源码,加入
--sync功能,通过scroll同时查询源和目标index,比较其内容的方式,实现增量更新(Add/Update/Del), 目前该 PR/84 已经合并到esm中。 - 目前 esm 的作者已经不再维护,因此后来发现的一些bug也很难改善及合并。
- 从 issue 和 源码来看, esm 不支持 OpenSearch, esm作者以后也不会再更改
更改
- 对源码进行了更改,对同步(Sync)功能进行了加强,从而满足我在两个集群之间"近"实时同步的需求。
- 增加
--stamp参数,如果 index 中有表示最后更新时间的字段,可以进一步减少查询的数据量(本质是利用esm中
- 增加
Elasticsearch/OpenSearch同步工具开源重构

最低0.47元/天 解锁文章
393

被折叠的 条评论
为什么被折叠?



