简介
MongoShake是一个以golang语言进行编写的通用的平台型服务,通过读取MongoDB集群的Oplog操作日志,对MongoDB的数据进行复制,后续通过操作日志实现特定需求。日志可以提供很多场景化的应用,为此,我们在设计时就考虑了把MongoShake做成通用的平台型服务。通过操作日志,我们提供日志数据订阅消费PUB/SUB功能,可通过SDK、Kafka、MetaQ等方式灵活对接以适应不同场景(如日志订阅、数据中心同步、Cache异步淘汰等)。集群数据同步是其中核心应用场景,通过抓取oplog后进行回放达到同步目的,实现灾备和多活的业务场景。
开源下载地址
https://github.com/alibaba/MongoShake?spm=a2c4e.10696291.0.0.316619a4JXuDrN
二进制版本下载地址
https://github.com/alibaba/MongoShake/releases
实验环境
源mongodb
单机mongodb 10.23.215.213 800万条记录
> use testdb
switched to db testdb
> db.table1.count()
8000000
>
目标mongodb
下载mongoshake
wget https://github.com/alibaba/MongoShake/releases/download/release-v2.2.0-20191120/mongoshake-v2.2.0.tar.gz
解压修改配置
tar zxvf mongoshake-v2.2.0.tar.gz
运行命令
./collector.linux -conf=collector.conf -verbose