littlebot
Published on 2025-04-11 / 0 Visits
0

【源码】基于Spring Boot和ShardingJDBC的分布式事务管理系统

项目简介

本项目是基于Spring Boot框架和Sharding-JDBC的分布式事务管理系统,致力于解决多数据源动态切换、分布式事务管理以及基于角色的访问控制(RBAC)等问题。借助Sharding-JDBC达成数据源动态切换与分库分表,结合Seata实现跨服务的分布式事务管理,同时具备用户、角色、权限等RBAC功能,保障系统的安全性与可维护性。

项目的主要特性和功能

  1. 数据源动态切换:运用Sharding-JDBC实现多数据源动态切换,可依据租户信息自动挑选对应数据源进行数据库操作。
  2. 分布式事务管理:利用Seata实现跨服务的分布式事务管理,确保多微服务间事务的一致性。
  3. 基于角色的访问控制(RBAC):提供用户、角色、权限等RBAC功能,支持用户注册、登录、权限分配、角色管理等操作。
  4. 数据分库分表:通过Sharding-JDBC实现数据分库分表,提升系统的扩展性和性能。
  5. 微服务架构:采用微服务架构,各模块通过RESTful API通信,支持高并发和分布式部署。
  6. API文档:使用Swagger生成API文档,便于前端或其他服务理解API接口的使用方法和参数。
  7. 数据库连接池:使用Druid数据库连接池,具备数据库连接的监控和管理功能。

安装使用步骤

1. 环境准备

确保已安装以下环境: - JDK 1.8 或更高版本 - Maven 3.x - MySQL 5.7 或更高版本 - Seata Server(用于分布式事务管理)

2. 复制项目

将项目源码复制到本地。

3. 配置数据库

  1. 在MySQL中创建数据库 xincan-transactionxincan-transaction-order
  2. 执行项目中的SQL脚本,初始化数据库表结构。

4. 配置Sharding-JDBC

application.yml 中配置Sharding-JDBC的数据源信息,保证主数据源和租户数据源配置无误。

5. 配置Seata

  1. application.yml 中配置Seata的相关信息,涵盖事务分组和服务地址。
  2. seata.conffile.conf 中配置Seata的注册中心和事务分组信息。

6. 启动服务

  1. 启动Eureka注册中心: bash cd xincan-transaction-eureka mvn spring-boot:run
  2. 启动Order服务: bash cd xincan-transaction-order mvn spring-boot:run
  3. 启动User服务: bash cd xincan-transaction-user mvn spring-boot:run

7. 测试功能

  1. 数据源动态切换:通过租户登录获取token,然后发送请求查询不同租户的用户表信息。
  2. 分布式事务:调用Order服务的 /order/test 接口,测试XA分布式事务的回滚功能。
  3. RBAC功能:通过Swagger文档访问用户、角色、权限等API,测试RBAC功能。

8. 查看API文档

启动服务后,访问 http://localhost:8070/swagger-ui.html 查看API文档,了解各接口的使用方法。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】