Sharding-JDBC 系列专题 - 第七篇:Spring Boot 集成与 Sharding-Proxy 简介
本系列专题旨在帮助开发者全面掌握 Sharding-JDBC,一个轻量级的分布式数据库中间件。本篇作为系列的第七篇文章,将重点探讨 Sharding-JDBC 与 Spring Boot 的集成,以及 Sharding-Proxy 的基本概念和使用场景。通过 Spring Boot 集成,开发者可以更高效地构建分布式数据库应用,而 Sharding-Proxy 提供了一种服务端分片解决方案,适合特定场景。需要图形化展示的部分将使用 Mermaid 语法绘制图表。
1. Spring Boot 集成 Sharding-JDBC
Spring Boot 是 Java 开发中广泛使用的框架,Sharding-JDBC 可以无缝集成到 Spring Boot 项目中,通过 Spring 的依赖注入和配置管理简化开发流程。本节将展示如何在 Spring Boot 中配置和使用 Sharding-JDBC,包括分库分表、读写分离和分布式事务。
1.1 环境准备
- Spring Boot:版本 2.7.x 或 3.x。
- 数据库:MySQL 5.7 或以上,创建 2 个分片数据库(
db0
、db1
)和主从数据库(master_db
、slave_db0
、slave_db1
)。 - 表结构:订单表
t_order
和配置表t_config
(参考前几篇)。
1.2 添加依赖
在 pom.xml
中添加 Spring Boot 和 Sharding-JDBC 依赖:
<dependencies>
<!-- Spring Boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.7.5</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
<version>2.7.5</version>
</dependency>
<!-- Sharding-JDBC -->
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
<version>5.4.1</version>
</dependency>
<!-- MySQL Driver -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
<!-- HikariCP -->
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>5.0.1</version>
</dependency>
</dependencies>
1.3 配置 Sharding-JDBC
在 application.yml
中配置分库分表、读写分离和广播表:
spring:
shardingsphere:
datasource:
names: ds_0, ds_1, master_ds, slave_ds_0, slave_ds_1
ds_0:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
jdbc-url: jdbc:mysql://localhost:3306/db0?useSSL=false
username: root
password: 123456
max-pool-size: 50