Sharding Sphere是如何处理数据的?又是如何改变数据存储方式的呢?
如果熟悉Sharding Sphere应该就会知道,它是Apache软件基金会的顶级项目,其第一行代码是2015年写下,最初是为了解决互联网电商场景数据库分库分表的需求,在2016年开始、开源,当时它的名字还是Sharding JDBC。2017年发布了2.0版本,主打数据库治理功能;2018年正式更名为Sharding Sphere,而Sharding JDBC则演变为生态圈中的一部分,并且在同年开发了具有独立形态的Proxy代理,当年10月份通过Apache的投票,正式成为Apache孵化项目,也再次更名为Apache Sharding Sphere。大概一年半时间左右,成为Apache顶级项目,到了2021年迎来了5.0版本,从而开启一个新的机缘,提出了Databace Plus理念,是指构建数据库的上层标准。
简单来说,Sharding Sphere对于数据库不是去替换,而是提供了增强能力,如分布式、数据加密等能力,在未来像6.0版本会推出全面云化的功能,7.0会面向生态,这是大概的发展历程。
从Sharding Sphere在Apache软件基金会中的现状看,目前Sharding Sphere现有Stars数有1.7人,Pull Requests有1.2万,是非常活跃的开源项目。
在去年官方发布的报告中,Sharding Sphere活跃度排名第7,贡献者现在已经有400多位,目前社区登记在用的企业应该有200家以上,在学术方面,今年上半年社区在数据库三大顶会的ICDE发布了论文,也在海外发布了权威指南,将理论和实践相结合。
Sharding Sphere也进入了CNCF全景图,未来会在开源领域、云原生领域持续拓展、不断精进,构建一个有机的生态圈。在今年上半年,信通院联合Sharding Sphere社区成立了金融用户社区,多家金融用户分享相关的经验,希望有更多的金融用户能够加入到这里来。
随着各行业的业务场景在快速的演进,随之而来的是数据量体量越来越大、应用场景越来越细分,数据库技术站和DBA的路线都在向多样化发展,对于DBA来讲,打开运维管理平台的时候就非常容易看到至少三种数据库,时间如果向前20年,当时的业务场景没有现在这么复杂,反观现在,使用单一的数据库来处理所有的应用场景情况基本看不到了,可以说是数据库技术处在一个快速的变革当中,越来越多的数据库像雨后春笋一般的出现,我们正处在一个数据库碎片化的趋势当中。
在这种数据库碎片的趋势之下,我们会面临很多痛点问题,比如说对于架构师、研发人员或者运维人员都有不同的挑战,可能是架构选择困难,如何在众多的技术栈选择一个合适的方案,以稳定兼容度比较高的方式,做好分布式转型、风险最小化,同时还有技术挑战比较多、运维复杂化以及现有数据库之间缺乏协作等痛点。
在未来得发展趋势上,应该是一个多场景、多技术栈并存的状态,数据会应该通过一个统一的平台来为上层提供服务。在架构转型的过程中,业务系统对于数据库的需求还是非常多的,比如如何实现分布式治理,如何实现可扩展性,如何保障数据安全,还有不定期的一些其他的性能需求等等,这些需求在应用中实现是可以的,只不过需要不断重复的造轮子,比较麻烦,业务要重构。如果放在数据库当中实现,似乎难度更高,尤其是在异构数据库的协作方面,比如MySQL不能管理PG,反过来PG也不能管理MySQL,这样的架构对于异构的需求以及对于集中数据库构建分布式数据库的需求会更合适一些,既开放又稳定。
这是对当前技术发展趋势的理解。
这里讲讲Sharding Sphere设计理念,首先需要了解Database Plus的理念,它是指在数据库上一层构建一个标准和生态层,它有三个核心特点:连接、增强、可插拔。连接是为了达到数据库上层标准,相对提供一个全新的标准,Database Plus更倾向于提供一个可以适配各种数据库方案和标准协议层的中间层,它可以提供开放的接口,因为对接各种各样的数据库,数据库网关应该是对连接最好的一个诠释。
第二个是增强,是指对数据库计算引擎的增强,数据库经历了数十年的发展,本身就具备了非常优秀的查询优化引擎能力、事故引擎和存储引擎等等,这些都是久经考验的,Database Plus采用了集中式传统数据库实践经验,适配新一代数据库实践理念的想法,无论是对集中数据库,还是分布式数据库,Database Plus都能复用本身的计算和存储能力,在这个基础之上,我提供全局化的能力增强,如数据分片、弹性伸缩、高可用等。
最后是可插拔层。它是构建了数据库功能和生态,随着数据库类型和对接的能力不断往里植入,会使Database Plus这一层越来越臃肿,连接和增强的可插拔化既是Database Plus通用层保持小而美的基石,也是扩展生态无限化的保障。
可以说Database Plus是Sharding Sphere的理论支撑,Sharding Sphere是Database Plus理念的最佳实践,随着Sharding Sphere越来越多的能力植入,对Database Plus的拼图是越来越丰满。目前Sharding Sphere根据Database Plus理念已经完成了三大核心价值的大部分基础设施建设,在连接层Sharding Sphere已经支持了MySQL、PG、OpenBase等这样的数据库协议,还有所有支持SQL 92标准的方向支持,在增强层可以划分为内核层和可选功能层,内核层包含查询云化器、分布式事务等等内核相关的功能,内核的功能每个模块是必须存在的,但是可以切换到不同的时间类型。
可选功能层的模块是由社区沉淀出来的,除了具有代表性的数据分片和读写分离之外,高可用、弹性伸缩、数据加密、影子库等等这种功能模块都是在逐步的完善当中的。
(本文根SphereEx解决方案专家代野演讲速记整理而成)