美文网首页
数据迁移工具Mongobee的实现分析

数据迁移工具Mongobee的实现分析

作者: 寒风1 | 来源:发表于2021-01-16 14:53 被阅读0次

使用场景

Mongobee可以用来做数据迁移。例如:1. 给文档新增一个字段,需要初始化值;2. 新增一个文档,数据需要重其他文档中迁移过来。等等场景。

集成示例

在Mongobee的开源代码中的README中介绍的比较详细。开源链接地址:https://github.com/mongobee/mongobee

实现原理(代码版本:mongobee-0.13)

1.主类Mongobee实现了Spring的接口InitializingBean,在Spring完成Bean初始化后会回调afterPropertiesSet方法。
2.在afterPropertiesSet方法中执行execute,做以下几件事情完成迁移逻辑的调用。

1)使用mongo-java-driver的方法和mongodb建好连接。

2)创建文档dbchangelog的唯一索引:索引字段,changeId和author。

3)创建文档mongobeelock的唯一索引:索引字段,key。

4)插入一条数据到文档mongobeelock,数据为:{"key":"LOCK","status":"LOCK_HELD"},利用这条数据实现逻辑上的锁。

  1. 扫描配置的changset的包路径,找到所有包含注解为@ChangeSet的类。

6)按order排序后,每个类解析所有@ChangeLog的方法,并按order排序类中的方法。

7)通过反射的方式回调含有注解@ChangeLog的方法完成数据迁移。

Mongobee的数据迁移流程图.png Mongobee的类图.png

相关文章

网友评论

      本文标题:数据迁移工具Mongobee的实现分析

      本文链接:https://www.haomeiwen.com/subject/yeunaktx.html