1.ShardingSphere简介

老马 老马 | 102 | 2022-09-09

Sharding-JDBC前生今世

Sharding-JDBC早先是当当网的一个叫张亮的程序员开发的。用来解决分库分表的问题。到2017年的时候才开始对外开源,这几年在大量社区贡献者的不断迭代下,功能也逐渐完善,现已更名为 ShardingSphere,2020年正式成为 Apache 软件基会的顶级项目。

官网中文地址:https://shardingsphere.apache.org/index_zh.html

2018 年 5 月,因为增加了 Proxy 的版本和 Sharding-Sidecar(尚未发布),Sharding-JDBC 更名为 Sharding Sphere,从一个客户端的组件变成了一个套件。

sharding sphere目前已经到5.X时代了,前4代迭代的过程如下:

image-20220909141234455

sharding sphere 5包含如下新的特性:

  • DistSQL
  • 可插拔内核
  • 数据迁移

记忆印记:

sharding-jdbc 已经改名叫shardingsphere jdbc了。

用来解决分库分表问题的

sharding sphere家族

ShardingSphere不但包括jdbc还有Proxy和Sidecar(规划中)三部分组成。这三个家族成员既能独立部署使用,还支持混合部署配合使用。ShardingSphere于2020年4月16成为Apache的顶级项目。

记忆印记:

ShardingSphere是一个套装,可以配合使用

ShardingSphere已经是Apache的顶级想了

ShardingSphere-JDBC介绍

定位为轻量级 Java 框架,在 Java 的JDBC 层提供的额外服务。它使用客户端直连数据库,以jar 包形式提供服务,无需额外部署和依赖,可理解为增强版的 JDBC 驱动,完全兼容 JDBC 和各种 ORM 框架。

  1. 适用于任何基于 JDBC 的 ORM 框架,如:JPA, Hibernate, Mybatis, Spring JDBC Template 或直接使用 JDBC;
  2. 支持任何第三方的数据库连接池,如:DBCP, C3P0, BoneCP, HikariCP 等;
  3. 支持任意实现 JDBC 规范的数据库,目前支持 MySQL,PostgreSQL,Oracle,SQLServer 以及任何可使用 JDBC 访问的数据库

ShardingSphere-JDBC功能架构图:

image-20220909141608352

上图表达的意思:

  1. ShardingSphere-JDBC是管理数据库的链接的,我们的业务代码通过它来操作数据库。

  2. ShardingSphere-JDBC到数据库的线,理解成一个个规则,它是通过配置好的规则来操作数据库的。

  3. RegisterCenter:可以理解成微服务中的配置中心nacos,通过在一个地方配置,使程序简化配置。

记忆印记:

是个jar包,那么就可以通过pom依赖进来

在jdbc层外包了一层,提供额外的服务

可通过配置中心简化配置

ShardingSphere-Proxy

定位为透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。 目前提供 MySQL 和 PostgreSQL(兼容 openGauss 等基于 PostgreSQL 的数据库)版本,它可以使用任何兼容 MySQL/PostgreSQL 协议的访问客户端(如:MySQL Command Client, MySQL Workbench, Navicat 等)操作数据,对 DBA 更加友好。

ShardingSphere-Proxy功能架构图:

image-20220909141846070

上图表达的意思:

  • ShardingSphere-Proxy是以单独的服务来独立运行的,好处就是可以公用配和连接池资源。
  • 我们的应用不用再耦合ShardingSphere-JDBC,全部通过这个代理统一操作数据库。类mycat。

ShardingSphere-Sidecar(TO DO)

定位为 Kubernetes 的云原生数据库代理,以 Sidecar 的形式代理所有对数据库的访问。 通过无中心、零侵入的方案提供与数据库交互的啮合层,即 Database Mesh,又可称数据库网格。了解一下即可。

三大组件对比

image-20220909141957914

ShardingSphere功能列表

  1. 功能列表
  • 数据分片
  • 分库 & 分表
  • 读写分离
  • 分片策略定制化
  • 无中心话分布式主键
  1. 分布式事务
  • 标准化事务接口
  • XA强一致性事务
  • 柔性事务
  • 数据库治理
  1. 分布式治理(Sidecar中的功能,正在规划中)
  • 弹性伸缩
  • 可视化链路追踪
  • 数据加密
推荐指数:

真诚点赞 诚不我欺~

1.ShardingSphere简介

点赞 收藏 评论

关于作者

老马
老马

不要假装很努力,结果不会陪你演戏。

等级 LV2

粉丝 4

获赞 13

经验 203