1 使用过程
1.1 maven依赖
在项目的pom.xml文件中加入以下内容
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-core</artifactId>
<version>4.1.1</version>
</dependency>
1.2 规则配置
Sharding-JDBC 可以通过以下方式配置使用:
- Java代码
- YAML文件
- Spring命名空间
- Spring Boot Starter
我们在实际的工作当中,可以根据自己的需要选择适合的配置方式。
1.3 创建DataSource
通过 ShardingDataSourceFactory 工厂和规则配置对象获取 ShardingDataSource,然后即可通过DataSource 选择使用原生 JDBC 开发,或者使用 JPA, MyBatis 等 ORM 工具。
DataSource dataSource = ShardingDataSourceFactory.createDataSource(dataSourceMap, shardingRuleConfig, props);
2 内部结构
2.1 入口API
ShardingJDBC 的入口API,采用工厂方法提供:
- ShardingDataSourceFactory 支持分库分表,以及读写分离操作
- MasterSlaveDataSourceFactory 支持读写分离操作
2.2 配置对象
ShardingJDBC 的配置对象,提供灵活多样的配置方式:
-
ShardingRuleConfiguration 主入口,包含多个 TableRuleConfiguration,也可以包含多个MasterSlaveRuleConfiguration
-
TableRuleConfiguration 用于分片配置规则
-
MasterSlaveRuleConfiguration 用于读写分离的配置规则
-
ShardingStrategyConfiguration 分片策略,下边又可以区分为不同的策略类型
2.3 内部对象
由Sharding-JDBC 内部使用,作为使用者,我们仅需要了解即可。
ShardingJdbc 通过 ShardingRuleConfuguration 和 MasterSlaveRuleConfiguration 生成真正的规则对象,最终生成我们要使用的 Datasource。
3 Sharding-JDBC初始化流程
- 根据配置信息生成 Configuration 对象
- 通过 Factory 将 Configuration 对象转化成 Rule 对象
- 通过 Factory 将 Rule 对象与 DataSource 对象进行封装
- 使用 ShardingJdbc 进行分库分表操作