MongoShake:基于mongodb oplog的集群复制平台
MongoShake是由阿里云NoSQL团队开发维护的通用数据复制平台。基于MongoDB的oplog,可从源Mongo数据库获取oplog并处理。能构建冗余复制或双活复制,有并行复制、高可用性、过滤、DD...
标签:Github项目mongodboplog MongoShake 双活复制 数据冗余 集群复制【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的集群复制平台,在数据冗余复制、双活复制等方面有着重要的作用,其多种功能特性能够满足不同的业务需求。欢迎大家在评论区留言讨论,分享使用经验或者提出问题。
项目地址
数据统计
数据评估
本站链氪巴士提供的MongoShake:基于mongodb oplog的集群复制平台都来源于网络,不保证外部链接的准确性和完整性,同时,对于该外部链接的指向,不由链氪巴士实际控制,在2024年12月6日 上午12:00收录时,该网页上的内容,都属于合规合法,后期网页的内容如出现违规,可以直接联系网站管理员进行删除,链氪巴士不承担任何责任。