链氪巴士
  1. 首页
  2. 站点导航
  3. 文章
  4. 快讯
  5. 软件
  6. 书刊
  7. 关于

MongoShake:基于mongodb oplog的集群复制平台

MongoShake是由阿里云NoSQL团队开发维护的通用数据复制平台。基于MongoDB的oplog,可从源Mongo数据库获取oplog并处理。能构建冗余复制或双活复制,有并行复制、高可用性、过滤、DDL同步等功能,支持多种隧道类型、压缩及监控调试。

访问官网 →

【Github】项目名:MongoShake – 基于mongodb oplog的集群复制平台

一、项目简介

MongoShake是由阿里云NoSQL团队开发和维护的一个通用数据复制平台。它基于MongoDB的oplog,从源Mongo数据库获取oplog,然后可以将其重放到目标Mongo数据库或者通过不同的隧道发送到其他端点。如果目标端是Mongo数据库,即直接重放oplog,它就像是一个用于将数据从源MongoDB复制到另一个MongoDB以构建冗余复制或双活复制的异步工具。此外,还有rpc、file、tcp、kafka等隧道类型,用户定义的接收器必须分别定义自己连接这些隧道的接口,也可以定义自己可插拔的隧道类型。

二、核心技术

  1. 并行复制:有三种并行复制选项,称为’shad_key’,分别是id(以文档为并发粒度)、collection(以集合/表为粒度)和auto(根据是否存在唯一索引决定,有则为collection,无则为id)。
  2. 高可用性:MongoShake定期将其上下文持久化到注册中心(默认是源数据库),目前上下文是标记成功重放oplog位置的检查点,并且支持监控器机制,在故障时可立即重启。
  3. 过滤器:支持使用白名单和黑名单对数据库和集合命名空间进行过滤。
  4. DDL同步:从1.5版本开始,通过使用全局屏障支持DDL同步。
  5. 隧道:支持rpc、tcp、file、kafka、mock和direct等隧道类型,并且提供接收器连接不同隧道。
  6. 压缩:在发送之前,支持对批量oplog进行Gzip、zlib、deflate压缩。
  7. 监控与调试:用户可以通过RESTful API对Mongo – Shake进行监控或调试。

三、项目总结

MongoShake是一个功能丰富的基于MongoDB oplog的集群复制平台,在数据冗余复制、双活复制等方面有着重要的作用,其多种功能特性能够满足不同的业务需求。欢迎大家在评论区留言讨论,分享使用经验或者提出问题。

项目地址

GitHub链接直达