ShardingSphere内核简要分析

关于ShardingSphere内核的分析

当第一次接触到ShardingSphere时,笔者就对它产生了浓厚的兴趣。官方对ShardingSphere的介绍是:
Apache ShardingSphere(Incubator) 是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(规划中)这3款相互独立,却又能够混合部署配合使用的产品组成。它们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如Java同构、异构语言、云原生等各种多样化的应用场景。

ShardingSphere定位为关系型数据库中间件,旨在充分合理地在分布式的场景下利用关系型数据库的计算和存储能力,而并非实现一个全新的关系型数据库。它通过关注不变,进而抓住事物本质。关系型数据库当今依然占有巨大市场,是各个公司核心业务的基石,未来也难于撼动,我们目前阶段更加关注在原有基础上的增量,而非颠覆。

笔者花了几周的时间对官网文档进行细致的阅读(ShardingSphere官网),特别是着重于内核刨析。笔者认为,要想很好的理解一个产品,首先就得知道它的理念。所以在几周的学习之后,笔者又花了一周进行源码跟读,进而得出了ShardingSphere内核模块的一些依赖关系和SQL的解析到结果归并的流程。

sharding-core子模块之间的依赖

ShardingSphere内核简要分析
笔者用不同的箭头颜色表示了每一个模块的依赖,详细的目录结构请访问官方GitHub项目

SQL解析到归并的流程

ShardingSphere内核简要分析
由于字体比较小,大家自行下载图片进行放大观看。
转载请标注文章出处,谢谢。