pdf文档 2 Sharding-JDBC入门使用

325.38 KB 12 页 0 评论
上传 格式 评分
copilot
.pdf
3
摘要
文档详细介绍了Sharding-JDBC的入门使用方法,包括如何在非Spring和Spring环境下配置分库分表。通过配置数据源、YAML文件或Java代码,用户可以实现基于user_id和order_id的分库分表策略。此外,文档还提到了JDBC连接池的配置,支持MySQL和PostgreSQL,并提供了详细的属性配置说明。
AI总结
# 《Sharding-JDBC入门使用》总结 本文主要介绍了如何在有Spring和无Spring环境下使用Sharding-JDBC进行分库分表的配置与实现,并简要说明了相关的属性配置和注意事项。 --- ## 一、不使用Spring ### 1.1 依赖引入 在Maven项目中引入Sharding-JDBC核心依赖: ```xml org.apache.shardingsphere sharding-jdbc-core ${sharding-sphere.version} ``` ### 1.2 配置与实现 - **数据源配置**:手动创建真实数据源,并将其存储于Map中。 示例配置了两个MySQL数据源`ds0`和`ds1`,分别连接到不同的数据库实例。 - **分库分表规则配置**: - **分库策略**:基于`user_id`取模分库。 - **分表策略**:基于`order_id`取模分表。 - **规则配置**:通过`TableRuleConfiguration`定义`order`表的分库分表策略,并将其添加到`ShardingRuleConfiguration`中。 - **创建数据源**:通过`ShardingDataSourceFactory`创建支持分片的数据源。 ### 1.3 代码示例 通过Java代码实现分库分表配置,定义`DataSource`并执行SQL操作。 ```java // 配置数据源... // 创建支持分片的数据源 DataSource dataSource = ShardingDataSourceFactory.createDataSource(dataSourceMap, shardingRuleConfig, new ConcurrentHashMap<>(), new Properties()); ``` --- ## 二、使用Spring ### 2.1 依赖引入 在Spring Boot项目中引入Sharding-JDBC相关依赖: ```xml io.shardingsphere sharding-jdbc-spring-boot-starter ${sharding-sphere.version} ``` ### 2.2 配置与实现 支持两种配置方式: - **基于XML配置**:通过`namespace`方式定义数据源和分片规则。 - **基于YAML配置**:在`application.yml`中定义数据源和分片规则。 #### 2.2.1 数据源配置 在`application.yml`中配置数据源信息,例如: ```yaml sharding: jdbc: datasource: names: ds0,ds1 ds0: type: com.alibaba.druid.pool.DruidDataSource driver-class: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/db1?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC username: mike password: Mike666! ds1: type: com.alibaba.druid.pool.DruidDataSource driver-class: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/db2?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC username: mike password: Mike666! ``` #### 2.2.2 分片规则配置 在`application.yml`中定义分片规则,示例如下: ```yaml config: sharding: default-data-source-name: ds0 props: sql.show: true ``` ### 2.3 代码示例 通过`@Resource`注入`DataSource`,并执行分片操作。 ```java @Resource private DataSource dataSource; ``` --- ## 三、属性配置说明 - **dataSources**:配置数据源列表,支持MySQL、PostgreSQL等数据库,建议至少配置一个主数据源。 - **tables**:配置分表规则,可以定义逻辑表名称、实际数据节点、分库分表策略等。 - **props**:可选配置,用于控制连接池参数和日志输出(如`sql.show`控制SQL日志显示)。 --- ## 四、注意事项 1. 目前仅支持MySQL和PostgreSQL,其他数据库可能存在兼容性问题。 2. 对于MySQL 8.x,需升级JDBC驱动版本到5.1.46或47。 3. 建议在生产环境中充分测试配置的稳定性和兼容性。
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
文档评分
请文明评论,理性发言.