项目简介
本项目是基于Spring Boot框架和Sharding-JDBC的分布式事务管理系统,致力于解决多数据源动态切换、分布式事务管理以及基于角色的访问控制(RBAC)等问题。借助Sharding-JDBC达成数据源动态切换与分库分表,结合Seata实现跨服务的分布式事务管理,同时具备用户、角色、权限等RBAC功能,保障系统的安全性与可维护性。
项目的主要特性和功能
- 数据源动态切换:运用Sharding-JDBC实现多数据源动态切换,可依据租户信息自动挑选对应数据源进行数据库操作。
- 分布式事务管理:利用Seata实现跨服务的分布式事务管理,确保多微服务间事务的一致性。
- 基于角色的访问控制(RBAC):提供用户、角色、权限等RBAC功能,支持用户注册、登录、权限分配、角色管理等操作。
- 数据分库分表:通过Sharding-JDBC实现数据分库分表,提升系统的扩展性和性能。
- 微服务架构:采用微服务架构,各模块通过RESTful API通信,支持高并发和分布式部署。
- API文档:使用Swagger生成API文档,便于前端或其他服务理解API接口的使用方法和参数。
- 数据库连接池:使用Druid数据库连接池,具备数据库连接的监控和管理功能。
安装使用步骤
1. 环境准备
确保已安装以下环境: - JDK 1.8 或更高版本 - Maven 3.x - MySQL 5.7 或更高版本 - Seata Server(用于分布式事务管理)
2. 复制项目
将项目源码复制到本地。
3. 配置数据库
- 在MySQL中创建数据库
xincan-transaction
和xincan-transaction-order
。 - 执行项目中的SQL脚本,初始化数据库表结构。
4. 配置Sharding-JDBC
在 application.yml
中配置Sharding-JDBC的数据源信息,保证主数据源和租户数据源配置无误。
5. 配置Seata
- 在
application.yml
中配置Seata的相关信息,涵盖事务分组和服务地址。 - 在
seata.conf
和file.conf
中配置Seata的注册中心和事务分组信息。
6. 启动服务
- 启动Eureka注册中心:
bash cd xincan-transaction-eureka mvn spring-boot:run
- 启动Order服务:
bash cd xincan-transaction-order mvn spring-boot:run
- 启动User服务:
bash cd xincan-transaction-user mvn spring-boot:run
7. 测试功能
- 数据源动态切换:通过租户登录获取token,然后发送请求查询不同租户的用户表信息。
- 分布式事务:调用Order服务的
/order/test
接口,测试XA分布式事务的回滚功能。 - RBAC功能:通过Swagger文档访问用户、角色、权限等API,测试RBAC功能。
8. 查看API文档
启动服务后,访问 http://localhost:8070/swagger-ui.html
查看API文档,了解各接口的使用方法。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】