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 内部结构ShardingJDBC 采用工厂方法提供的入口API:
- ShardingDataSourceFactory 支持分库分表和读写分离操作
- MasterSlaveDataSourceFactory 支持读写分离操作
ShardingJDBC 配置对象提供灵活多样的配置方法:
- ShardingRuleConfiguration 主入口,包括多个 TableRuleConfiguration,也可以包括多个MasterSlaveruleconfiguration
- TableRuleConfiguration 用于分片配置规则
- MasterSlaveRuleConfiguration 用于读写分离的配置规则
- ShardingStrategyConfiguration 下面可以分为不同的策略类型
Sharding-JDBC 作为用户,我们只需要了解内部使用。
ShardingJdbc 通过 ShardingRuleConfuguration 和 MasterSlaveRuleConfiguration 生成真正的规则对象,最终生成我们想要使用的对象 Datasource。
3 Sharding-JDBC初始化过程- 根据配置信息生成 Configuration 对象
- 通过 Factory 将 Configuration 对象转化成 Rule 对象
- 通过 Factory 将 Rule 对象与 DataSource 包装对象
- 使用 ShardingJdbc 分库分表操作
