架构理念: Database Plus #
Database Plus 是一种设计哲学理念,该理念致力于构建数据库上层的标准和生态,在生态中补充数据库所缺失的能力。其与 Apache ShardingSphere 及 SphereEx-DBPlus Engine 的关系如下。
- Database Plus:是 ShardingSphere 的设计哲学;
- ShardingSphere:是 Database Plus 的工程化实现;
- SphereEx-DBPlusEngine :是在 ShardingSphere 基础上面向企业用户的增强产品。
作为创建分布式数据库系统的指导性概念,Database Plus 在已经呈现出碎片化趋势的数据库之上,去建立全新的连接关系。这个过程将在无入侵上层应用前提下,在数据库上层提供数据增强服务,如分布式、数据控制和流量控制等。对于存储层,需要为用户保留了原有数据库技术栈,稳定性、兼容性及运维习惯等均无变化,可靠性也有更好的保证。这样,应用程序只需要与标准服务层对话,而不需要再关心底层数据库间的差异和能力,形成一个闭环生态环境。
Database Plus 的三个核心特性分别是连接、增强和可插拔。由“点”到“线”,最后形成一个生态“面”。
- 连接:打造数据库上层标准
连接是 Database Plus 能力的基础“点”。即以『数据库网关』的形态为应用系统提供统一数据库入口,提供一个可以适配于各种数据库 SQL 方言和访问协议的中间层,Database Plus 将 SQL 解析而成的 AST(抽象语法树)根据其他数据库方言的规则重新生成 SQL。它可屏蔽异构数据库方言差异,也可屏蔽业务中异构开发语言的差异。向上,以标准数据库协议支持多种开发语言,可做到应用无感平滑使用;向下,支持多种数据库产品既满足北向多种开发语言,同时还支持南向多种数据库产品。目前已支持 MySQL、PostgreSQL、openGauss 等数据库协议,以及 MySQL、PostgreSQL、openGauss、SQL Server、Oracle 和所有支持 SQL92 标准的 SQL 方言。
- 增强:数据库计算增强引擎
基于连接的“点”,可以进一步延伸到这一条增强功能“线”。传统数据库的实践经验是时间和多场景所沉淀的精华,Database Plus 在复用数据库的存储和原生计算能力基础上,再对其算力、容量及功能进行突破。当流量进入到了网关后,Database Plus 通过全局化的能力在分布式、数据控制和流量控制三个方面进行增强。数据分片、弹性伸缩、高可用、读写分离、分布式事务及基于垂直拆分的异构数据库联邦查询等功能,都是 Database Plus在分布式的异构数据库全局层面下所能够提供的增强能力,以排列组合的方式提供给用户使用。
- 可插拔:构建数据库功能生态
面向用户,Database Plus 以一个“面”的形态去呈现,即生态面。我们可尝试把这个“面”理解为所熟知的应用商店,你只需在众多的插件中选择所需要的功能即可,它可以单独使用,也可以组合使用,甚至你可以在应用商店中打造自己的定制化插件。通过可插拔体系,Database Plus 将能够真正的构建面向数据库的功能生态,将异构数据库的全局能力统一纳管。它不仅面向集中式数据库的分布式化,也同时面向分布式数据库的竖井功能一体化。可插拔的特性可在提供更好扩展的同时,还能做到收敛,只提供用户所需要的内容。生态无边界,能力可插拔。