<< 返回文章列表

全球分布式云大会举办 云和恩墨刘伟分享基于ShardingSphere的MogDB解决方案

2021年9月24日
云和恩墨
52

9月16日,Distributed Cloud | 2021全球分布式云大会·上海站在上海国际会议中心隆重召开。本次大会包括分布式云主题报告会、边缘云论坛、云原生专题论坛、分布式数据库论坛。

云和恩墨(北京)信息技术有限公司高级研发工程师刘伟受邀参加了分布式数据库论坛并发表了题为《基于ShardingSphere的MogDB分布式方案》的精彩演讲。

在全球分布式云大会不懈布道下,云计算行业对相关领域的关注度愈发高涨,以全球分布式云联盟成员为代表,涌现出了大量技术和实践成果,基于ShardingSphere的MogDB分布式解决方案便是其中之一。

 

MogDB企业级数据库

MogDB是云和恩墨基于openGauss开源数据库的内核进行研发的单机数据库。相较于MySQL,MogDB主备之间的数据一致性更容易得到保障。同时,MogDB可以提供SQL兼容性分析、性能压测对比分析、极限数据恢复等管理组件,帮助企业级用户方便高效地使用openGauss,减轻运维压力。总体来看,MogDB在解决分布式诉求上主要有以下几个特点:

第一,如果企业数据量级在单机范围内(通常认为4TB以下),MogDB可以提供非常高的性能支持;但是对于超大数据量和访问量,则需要考虑分库分表的分布式方式。这种情况下,MogDB需要结合ShardingSphere来解决需要面对的问题。

第二,如果数据量级在单机范围内,企业可以直接使用并行查询、连接池等MogDB内生自带能力。除此之外,MogDB也对NUMA做了优化。如果机器的CPU数量足够多,数据库性能的上限非常高。同时,相较于传统的复制,MogDB中多了接收缓存,数据的接收可控性更强、效率更高。另外,MogDB提供了最大可用模式:比方MogDB规定了同步复制,要求日志必须发送给备库,但假如指定备库宕机,主库写入可以不受影响。

第三,MogDB的三个复制模式有很大优势,提供了灵活的落地同步异步策略,比方Quoram模式可以允许指定3个备库,其中任意两个接收到日志后都认为事务提交成功。

在高可用方面,MogDB给出了优秀的商业产品解决方案,帮助客户享受云数据库带来的增益。高可用比较典型的结构是每个机器上都运行着高可用程序,所有的高可用元数据都会保存在ETCD里。一旦宕机,用户可通过ETCD协调切换。这种机制也能够方便地拓展到k8s的部署。

刘伟还表示,MogDB可以提供工具帮助客户实现从Oracle或者其他数据库迁移到openGauss或者MogDB的目标。

 

ShardingSphere中间件

“MogDB分布式解决方案离不开ShardingSphere中间件的支持。”刘伟说。他介绍到,ShardingSphere中间件是分库分表方案,可以兼容MySQL、PostgreSQL等数据库,使用起来非常方便

基于ShardingSphere的MogDB解决方案可实现分布式事务和分布式治理。一方面,ShardingSphere提供了分布式事务协调的接口,可以套入不同的实现。ShardingSphere主要使用的是XA的事务模式,如果对JDBC XA协议比较熟悉,可以直接使用,在Proxy模式下分布式事务只需要配置好,对业务使用上是透明的。另一方面,分布式治理的元数据是存储在分布式数据库中的,用户可以通过中间点做动态的配置变更,这样完成从元数据到ShardingSphere,再到MogDB的高可用。

此外,基于ShardingSphere的MogDB分布式解决方案有三个特性。第一,数据加密:当数据进出ShardingSphere时,数据会被加密,不易被盗用;第二,防火墙和SQL审计:ShardingSphere能够满足企业生产的安全性诉求;第三,监控:MogDB提供了内生的APM的监控机制。

 

完整的解决方案

将上述的主备搭建完成后,ShardingSphere可以作为分库分表的中间件,旁路搭配管理工具,配置自增或分区,做广播表、分片表等分片规则,监控主要是依托Prometheus。

分库分表类的方案在数据库迁移/分片迁移中依赖的操作技术是逻辑复制。MogDB提供了逻辑复制的模式,通过增量订阅的逻辑,MogDB可以对某个表,或者某个数据库所有的数据变更流,以逻辑复制的订阅者和分发者的方式,完成动态扩缩容、迁移、数据合并等工作。