Sharding-JDBC 系列专题 - 第七篇:Spring Boot 集成与 Sharding-Proxy 简介

发布于:2025-05-01 ⋅ 阅读:(21) ⋅ 点赞:(0)

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 个分片数据库(db0db1)和主从数据库(master_dbslave_db0slave_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
      

网站公告

今日签到

点亮在社区的每一天
去签到