ShardingSphere 4.x Sharding-JDBC 用户手册

简介

Sharding-JDBC是ShardingSphere的第一个产品,也是ShardingSphere的前身。

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

  • 适用于任何基于JDBC的ORM框架,如:JPA, Hibernate, Mybatis, Spring JDBC Template或直接使用JDBC。
  • 支持任何第三方的数据连接池,如:DBCP, C3P0, BoneCP, Druid, HikariCP等。
  • 支持任意实现JDBC规范的数据库。目前支持MySQL,Oracle,SQLServer,PostgreSQL以及任何遵循SQL92标准的数据库。


ShardingSphere 4.x Sharding-JDBC 用户手册

对比

Sharding-JDBC Sharding-Proxy Sharding-Sidecar
数据库 任意 MySQL/PostgreSQL MySQL/PostgreSQL
连接消耗数
异构语言 仅Java 任意 任意
性能 损耗低 损耗略高 损耗低
无中心化
静态入口

Sharding-JDBC的优势在于对Java应用的友好度。

内部结构


ShardingSphere 4.x Sharding-JDBC 用户手册

黄色部分

图中黄色部分表示的是Sharding-JDBC的入口API,采用工厂方法的形式提供。

目前有ShardingDataSourceFactory和MasterSlaveDataSourceFactory两个工厂类。ShardingDataSourceFactory用于创建分库分表或分库分表+读写分离的JDBC驱动,MasterSlaveDataSourceFactory用于创建独立使用读写分离的JDBC驱动。

蓝色部分

图中蓝色部分表示的是Sharding-JDBC的配置对象,提供灵活多变的配置方式。

ShardingRuleConfiguration是分库分表配置的核心和入口,它可以包含多个TableRuleConfiguration和MasterSlaveRuleConfiguration。每一组相同规则分片的表配置一个TableRuleConfiguration。如果需要分库分表和读写分离共同使用,每一个读写分离的逻辑库配置一个MasterSlaveRuleConfiguration。

每个TableRuleConfiguration对应一个ShardingStrategyConfiguration,它有5中实现类可供选择。

仅读写分离使用MasterSlaveRuleConfiguration即可。

红色部分

图中红色部分表示的是内部对象,由Sharding-JDBC内部使用,应用开发者无需关注。Sharding-JDBC通过ShardingRuleConfiguration和MasterSlaveRuleConfiguration生成真正供ShardingDataSource和MasterSlaveDataSource使用的规则对象。ShardingDataSource和MasterSlaveDataSource实现了DataSource接口,是JDBC的完整实现方案。

初始化流程

  1. 配置Configuration对象。
  2. 通过Factory对象将Configuration对象转化为Rule对象。
  3. 通过Factory对象将Rule对象与DataSource对象装配。
  4. Sharding-JDBC使用DataSource对象进行分库。

使用约定

org.apache.shardingsphere.api
org.apache.shardingsphere.shardingjdbc.api
包中的类是面向用户的API,每次修改都会在release notes中明确声明。

其他包中的类属于内部实现,可能随时进行调整, 请勿直接使用

原文 

https://segmentfault.com/a/1190000023367294

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » ShardingSphere 4.x Sharding-JDBC 用户手册

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址