当前位置: 首页 > 图灵资讯 > 技术篇> ShardingJDBC 02_内部结构

ShardingJDBC 02_内部结构

来源:图灵教育
时间:2023-07-05 17:31:41

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 02_内部结构_bc

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 分库分表操作