ThisLX 2018-06-28
近日,阿里云宣布正式开源基于MongoDB的MongoShake数据同步平台,该系统可以跨数据中心进行数据同步,最高处理QPS可达50万左右,使得跨数据中心的高效的灾备和多活业务成为可能,解决了之前多个数据中心部署灾备不灵活、单点可写的问题,给业务带来便利,减轻运维压力,其相比于业内现有的方案具有较强的功能和性能方面的提升。
同时,MongoShake是一个通用型平台服务,作为数据连通的桥梁,打通各个闭环节点的通道。通过MongoShake的订阅消费,可以灵活对接以适应不同场景,例如日志订阅、数据中心同步、监控审计等。其中,集群数据同步作为核心应用场景,能够灵活实现灾备和多活的业务场景。
实现灾备、多活,解决多数据中同步两大难题
在当前的数据库系统生态中,大部分系统都支持多个节点实例间的数据同步机制,如Mysql Master/Slave主从同步,Redis AOF主从同步等,MongoDB更是支持3节点及以上的副本集同步,上述机制很好的支撑了一个逻辑单元的数据冗余高可用。
跨逻辑单元,甚至跨单元、跨数据中心的数据同步,在业务层有时候就显得很重要,它使得同城多机房的负载均衡,多机房的互备,甚至是异地多数据中心容灾和多活成为可能。由于目前MongoDB副本集内置的主从同步对于这种业务场景有一定的局限性,为此,我们开发了MongoShake系统,可以应用在实例间同步,机房间、跨数据中心同步,满足灾备和多活需求。
灾备、多活部署实例
数据库的多活和灾备指的是数据库在多个机房部署,互为备份,可以同时提供读写服务。目前MongoDB数据库比较欠缺这样的平台,有些现有平台能满足部分需求,但是在性能甚至功能上比较欠缺,为此,我们开源了我们的MongoShake系统,能够较大程度上满足开发者和应用者的功能需求。为了提高性能,我们采用了多端拉取、并行执行、冲突检测、异步优化等多种方式提高系统的性能,满足性能需求。功能方面,我们支持对数据库DML和DDL语言的同步,保证数据的正确性。
MongoShake数据流示例
MongoShake早已在阿里巴巴内部经历千锤百炼,目前已经在高德、天猫、淘宝等广泛应用。
历经多年的技术沉淀,阿里云数据库团队不断对MongoDB产品进行打磨,MongoShake作为MongoDB核心的生态化产品,致力于更好的为阿里云用户提供服务,也为广大开源用户提供服务。MongoShake的开源绝对不是发展的终点,我们会不断对产品进行迭代优化,也欢迎大家一起加入,共同维护MongoDB生态,推出更好的服务。