基于Spring Cloud + Dubbo的图书管理系统
这是一个基于Spring Cloud + Dubbo微服务架构的图书管理系统,包含用户管理、图书管理、借阅管理等核心功能。系统采用Spring Cloud进行服务注册发现和配置管理,使用Dubbo进行高性能的RPC通信。
系统架构
微服务组件
-
Eureka Server (注册中心) - 端口: 8761
- 服务注册与发现
- 服务健康检查
-
Config Server (配置中心) - 端口: 8888
- 集中配置管理
- 配置动态刷新
-
Nacos Server (注册中心) - 端口: 8848
- Dubbo服务注册与发现
- 配置管理
-
Gateway Service (API网关) - 端口: 8080
- 统一入口
- 路由转发
- 负载均衡
-
User Service (用户服务) - 端口: 8081
- 用户管理
- 用户信息CRUD
-
Book Service (图书服务) - 端口: 8082
- 图书管理
- 库存管理
- 图书搜索
- 提供Dubbo RPC服务
-
Borrow Service (借阅服务) - 端口: 8083
- 借阅管理
- 归还管理
- 逾期处理
- 通过Dubbo调用图书服务
技术栈
- Spring Boot 2.7.18
- Spring Cloud 2021.0.8
- Spring Cloud Netflix Eureka
- Spring Cloud Gateway
- Spring Cloud Config
- Spring Cloud OpenFeign
- Apache Dubbo 3.2.0
- Spring Cloud Alibaba Nacos
- MyBatis Plus 3.5.3.1
- H2 Database
- Lombok
快速开始
环境要求
- JDK 11+
- Maven 3.6+
启动顺序
-
启动Eureka注册中心
cd eureka-server mvn spring-boot:run -
启动配置中心
cd config-server mvn spring-boot:run -
启动Nacos注册中心
cd nacos-server mvn spring-boot:run -
启动用户服务
cd user-service mvn spring-boot:run -
启动图书服务
cd book-service mvn spring-boot:run -
启动借阅服务
cd borrow-service mvn spring-boot:run -
启动API网关
cd gateway-service mvn spring-boot:run
API接口
用户管理
GET /api/users- 获取所有用户GET /api/users/{id}- 获取指定用户POST /api/users- 创建用户PUT /api/users/{id}- 更新用户DELETE /api/users/{id}- 删除用户
图书管理
GET /api/books- 获取所有图书GET /api/books/{id}- 获取指定图书GET /api/books/search?keyword=xxx- 搜索图书GET /api/books/available- 获取可借图书POST /api/books- 添加图书PUT /api/books/{id}- 更新图书DELETE /api/books/{id}- 删除图书
借阅管理
GET /api/borrows- 获取所有借阅记录GET /api/borrows/{id}- 获取指定借阅记录GET /api/borrows/user/{userId}- 获取用户借阅记录GET /api/borrows/overdue- 获取逾期记录POST /api/borrows/borrow?userId=1&bookId=1&borrowDays=30- 借书POST /api/borrows/{id}/return- 还书
数据库访问
各服务都使用H2内存数据库,可以通过以下URL访问控制台:
- 用户服务: http://localhost:8081/h2-console
- 图书服务: http://localhost:8082/h2-console
- 借阅服务: http://localhost:8083/h2-console
数据库连接信息:
- JDBC URL:
jdbc:h2:mem:xxxdb - 用户名:
sa - 密码: (空)
服务注册中心
- Eureka注册中心: http://localhost:8761
- Nacos注册中心: http://localhost:8848/nacos (用户名/密码: nacos/nacos)
功能特性
用户管理
- 用户注册、登录、信息管理
- 用户角色管理(管理员、图书管理员、读者)
- 用户信息验证
图书管理
- 图书信息管理
- 图书分类管理
- 库存管理
- 图书搜索功能
借阅管理
- 图书借阅
- 图书归还
- 借阅历史查询
- 逾期管理
- 借阅数量限制
系统特性
- 微服务架构
- 服务注册与发现
- 配置中心
- API网关
- 负载均衡
- 服务间通信
- Dubbo RPC通信
- 高性能服务调用
- MyBatis Plus数据访问
- 自动字段填充
项目结构
book-manager-cloud/
├── eureka-server/ # 注册中心
├── config-server/ # 配置中心
├── nacos-server/ # Nacos注册中心
├── gateway-service/ # API网关
├── user-service/ # 用户服务
├── book-service/ # 图书服务 (提供Dubbo服务)
├── borrow-service/ # 借阅服务 (消费Dubbo服务)
└── pom.xml # 父项目配置
扩展功能
可以根据需要添加以下功能:
- 认证授权 - 集成Spring Security
- 消息队列 - 集成RabbitMQ或Kafka
- 分布式事务 - 集成Seata
- 监控告警 - 集成Spring Boot Admin
- 链路追踪 - 集成Sleuth和Zipkin
- 缓存 - 集成Redis
- 数据库 - 替换为MySQL或PostgreSQL
注意事项
- 确保所有服务按顺序启动
- 检查Eureka控制台确认服务注册成功
- 通过网关访问API接口
- 注意服务间的依赖关系