6月29日,阿里云宣布正式开源基于MongoDB的容灾和多活解决方案平台--MongoShake(github地址),该方案可实现跨机房数据同步,最高处理QPS可达50万,解决过去灾备不灵活、单点写入等问题,实现跨机房容灾和异地多活业务,大幅减轻了运维压力。
MongoShake曾在各类大促场景下“大展身手”,以高德地图的国庆大促为例,MongoShake帮助高德解决了多机房容灾高可用需求,实现三机房全量中心,解放了测试、运维人员的压力,满足业务灵活切换的需求,支撑了国庆期间峰值流量下业务的稳定运行。
同时,作为一个通用型平台服务,阿里云MongoShake还可打通各个闭环节点的通道,灵活对接以适应不同场景,例如日志订阅、数据中心同步、监控审计等。此番开源,将使MongoDB在数据库领域发挥更大的作用。
跨机房容灾、异地多活,MongoShake解决多数据中心两大难题
在当前的数据库系统生态中,大部分系统都支持多个节点实例间的数据同步机制,如Mysql Master/Slave主从同步,Redis AOF主从同步等,MongoDB更是支持3节点及以上的副本集同步。
因此,跨单元、跨数据中心的数据同步,在业务层就显得格外重要。为了解决当前MongoDB对跨数据中心同步的局限性,阿里云研发了MongoShake解决方案,可应用在实例间同步,机房间、跨数据中心同步等场景,满足灾备和多活需求。
MongoShake灾备、多活部署
MongoShake的开源为目前广泛使用MongoDB数据库的开发者们提供了绝佳的解决方案,为了进一步提高传输性能,阿里云采取了多端拉取、并行执行、冲突检测、异步优化等多种设计思路,满足开发者的性能需求。
此外,MongoShake还支持对数据库DML和DDL语言的同步,从底层保证数据的一致性。关于MongoShake详细设计文档和开源地址可以参考下面链接。
MongoShake 详细设计文档地址:https://yq.aliyun.com/articles/603329
MongoShake Github地址:https://github.com/aliyun/mongo-shake