MongoShake是阿里云以Golang语言编写的通用平台型服务工具,它通过读取MongoDB的Oplog操作日志来复制MongoDB的数据以实现特定需求。
MongoShake还提供了日志数据的订阅和消费功能,可通过SDK、Kafka、MetaQ等方式的灵活对接,适用于日志订阅、数据中心同步、Cache异步淘汰等场景。
官方地址:https://github.com/alibaba/MongoShake
基于mongoshake可以衍生出很多的场景,从而提供给开发者在架构设计中更多更灵活、更丰富的选择
mongoshake本身的使用不难,这个参考官方的配置即可,主要是根据自身的业务场景做好配置文件中各个参数的配置即可达到目的,下面以mongoshake一个较为常用的场景,即使用mongoshanke完成2个mongodb复制集群之间的数据同步

选择其中一台服务器搭建一个mongodb的单机版复制集群,这里使用端口号区分,启动的时候启动多个实例即可(有条件的可以采用3个不同的服务器操作),按照下面的步骤依次执行即可:
1、创建3个目录

2、在3个主目录下,分别创建data和log目录

在myrs_27017 ,myrs_27018 ,myrs_27019 3个目录下分别做同样的操作,
3、编辑mongod.conf配置文件



5、创建集群
使用mongo的shell登录到其中一个实例上,进入bin目录下,执行下面命令

再使用:rs.initiate(cfg); 命令完成集群初始化

执行完毕后,可以使用: rs.status() 查看集群各个节点信息,打印出的信息太长,就不放截图了,注意,执行完毕之后,当前节点会出现短暂的 secondary ,但是过一会儿就变成 primary了
7、将另外两个节点加入集群
在上一步的窗口下依次执行下面的命令,将两位2个mongo实例加入到集群中

登录从节点,由于是复制集群,主节点上的数据必然会同步到从节点上,我们可以登陆进去查看是否同步成功

可以发现没有权限,默认情况下,从节点是没有读写权限的,需要做设置才行,可以在上面从节点的窗口执行下面的命令即可

MongoShake是阿里云以Golang语言编写的通用平台型服务工具,它通过读取MongoDB的Oplog操作日志来复制MongoDB的数据以实现特定需求。
MongoShake还提供了日志数据的订阅和消费功能,可通过SDK、Kafka、MetaQ等方式的灵活对接,适用于日志订阅、数据中心同步、Cache异步淘汰等场景。
官方地址:https://github.com/alibaba/MongoShake
基于mongoshake可以衍生出很多的场景,从而提供给开发者在架构设计中更多更灵活、更丰富的选择
mongoshake本身的使用不难,这个参考官方的配置即可,主要是根据自身的业务场景做好配置文件中各个参数的配置即可达到目的,下面以mongoshake一个较为常用的场景,即使用mongoshanke完成2个mongodb复制集群之间的数据同步

选择其中一台服务器搭建一个mongodb的单机版复制集群,这里使用端口号区分,启动的时候启动多个实例即可(有条件的可以采用3个不同的服务器操作),按照下面的步骤依次执行即可:
1、创建3个目录

2、在3个主目录下,分别创建data和log目录

在myrs_27017 ,myrs_27018 ,myrs_27019 3个目录下分别做同样的操作,
3、编辑mongod.conf配置文件



5、创建集群
使用mongo的shell登录到其中一个实例上,进入bin目录下,执行下面命令

再使用:rs.initiate(cfg); 命令完成集群初始化

执行完毕后,可以使用: rs.status() 查看集群各个节点信息,打印出的信息太长,就不放截图了,注意,执行完毕之后,当前节点会出现短暂的 secondary ,但是过一会儿就变成 primary了
7、将另外两个节点加入集群
在上一步的窗口下依次执行下面的命令,将两位2个mongo实例加入到集群中

登录从节点,由于是复制集群,主节点上的数据必然会同步到从节点上,我们可以登陆进去查看是否同步成功

可以发现没有权限,默认情况下,从节点是没有读写权限的,需要做设置才行,可以在上面从节点的窗口执行下面的命令即可

以上就是基于单机模式下搭建一个伪复制集群的全部过程,将同样的操作在另外一个服务器上执行即可
在另一个集群上,我们在主节点上创建了下面一个test库,并在库下新建了一条数据

有了上面的两个复制集群,mongoshake的使用就变得非常简单了,mongoshake实现数据同步的基本原理是通过监听mongodb的oplog,解析其中的事件,从而完成数据的读取与写入
mongoshake常用的同步包括,增量同步、全量同步、增量+全量同步,下面从列举了mongoshake内部实现数据同步的业务机制


1、解压mongoshake包

2、进入解压后的目录编辑并配置 collector.conf文件
下面列举比较常用的几个配置

模拟测试
mongoshake服务启动完毕后,这时可以去被同步的第一台服务器上检查数据是否同步成功

由于我们配置的是全量+增量的方式,因此服务一旦启动,数据就全部同步过去了

这时候再次去第二台服务器的test数据库下再次新增一条数据


再返回到第一台机器上检查数据是否成功同步

可以看到,数据成功同步到第一台机器上了
到此这篇关于mongoshake实现mongodb数据同步的文章就介绍到这了,更多相关mongodb数据同步内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!