MongoShake——基于MongoDB的跨数据中心的
数据复制平台
简介: MongoShake是基于MongoDB的通用型平台服务,作为数据连通的桥梁,打通各个闭环节点的通道。
通过MongoShake的订阅消费,可以灵活对接以适应不同场景,例如日志订阅、数据中心同步、监控审计等。
其中,集群数据同步作为核心应用场景,能够灵活实现灾备和多活的业务场景。
背景
在当前的数据库系统生态中,大部分系统都支持多个节点实例间的数据同步机制,如Mysql Master/Slave主从同
步,Redis AOF主从同步等,MongoDB更是支持3节点及以上的副本集同步,上述机制很好的支撑了一个逻辑单元
的数据冗余高可用。
跨逻辑单元,甚至跨单元、跨数据中心的数据同步,在业务层有时候就显得很重要,它使得同城多机房的负载均
衡,多机房的互备,甚至是异地多数据中心容灾和多活成为可能。由于目前MongoDB副本集内置的主从同步对于
这种业务场景有较大的局限性,为此,我们开发了MongoShake系统,可以应用在实例间复制,机房间、跨数据
中心复制,满足灾备和多活需求。
另外,数据备份是作为MongoShake核心但不是唯一的功能。MongoShake作为一个平台型服务,用户可以通过对
接MongoShake,实现数据的订阅消费来满足不同的业务场景。
简介
MongoShake是一个以golang语言进行编写的通用的平台型服务,通过读取MongoDB集群的Oplog操作日志,对
MongoDB的数据进行复制,后续通过操作日志实现特定需求。日志可以提供很多场景化的应用,为此,我们在设
计时就考虑了把MongoShake做成通用的平台型服务。通过操作日志,我们提供日志数据订阅消费PUB/SUB功
能,可通过SDK、Kafka、MetaQ等方式灵活对接以适应不同场景(如日志订阅、数据中心同步、Cache异步淘汰
等)。集群数据同步是其中核心应用场景,通过抓取oplog后进行回放达到同步目的,实现灾备和多活的业务场
景。
应用场景举例
1. MongoDB集群间数据的异步复制,免去业务双写开销。
2. MongoDB集群间数据的镜像备份(当前1.0开源版本支持受限)
3. 日志离线分析
4. 日志订阅
烛昭 2018-06-22 20304浏览量
提问题发文章首页 技术与产品 工具 问答 学习与认证 社群与活动 大数据 NEW 高校计划
体验实验室 云开发平台 AI实践
个人中心
评论