225 lines
4.7 KiB
Markdown
225 lines
4.7 KiB
Markdown
|
|
# 结伴客 - Java微服务版
|
|||
|
|
|
|||
|
|
结伴客是一个专注于结伴旅行和动物认领的社交平台。本项目采用Java微服务架构,基于Spring Boot和Spring Cloud实现。
|
|||
|
|
|
|||
|
|
## 🌟 项目特点
|
|||
|
|
|
|||
|
|
- **微服务架构**: 基于Spring Boot和Spring Cloud构建的微服务系统
|
|||
|
|
- **前后端分离**: 前端使用Vue.js,后端提供RESTful API
|
|||
|
|
- **容器化部署**: 支持Docker和Docker Compose一键部署
|
|||
|
|
- **高可用性**: 服务注册与发现、负载均衡、熔断机制
|
|||
|
|
- **安全认证**: JWT Token认证和RBAC权限控制
|
|||
|
|
- **缓存优化**: Redis缓存提升系统性能
|
|||
|
|
- **消息队列**: RabbitMQ实现异步处理和解耦
|
|||
|
|
|
|||
|
|
## 🏗️ 系统架构
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
graph TB
|
|||
|
|
subgraph "前端应用"
|
|||
|
|
A[后台管理系统]
|
|||
|
|
B[微信小程序]
|
|||
|
|
C[官方网站]
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
subgraph "API网关层"
|
|||
|
|
D[Spring Cloud Gateway]
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
subgraph "微服务层"
|
|||
|
|
E[Eureka Server]
|
|||
|
|
F[Auth Service]
|
|||
|
|
G[User Service]
|
|||
|
|
H[Travel Service]
|
|||
|
|
I[Animal Service]
|
|||
|
|
J[Order Service]
|
|||
|
|
K[Promotion Service]
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
subgraph "数据层"
|
|||
|
|
L[MySQL]
|
|||
|
|
M[Redis]
|
|||
|
|
N[RabbitMQ]
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
A --> D
|
|||
|
|
B --> D
|
|||
|
|
C --> D
|
|||
|
|
D --> F
|
|||
|
|
D --> G
|
|||
|
|
D --> H
|
|||
|
|
D --> I
|
|||
|
|
D --> J
|
|||
|
|
D --> K
|
|||
|
|
F --> L
|
|||
|
|
G --> L
|
|||
|
|
H --> L
|
|||
|
|
I --> L
|
|||
|
|
J --> L
|
|||
|
|
K --> L
|
|||
|
|
F --> M
|
|||
|
|
G --> M
|
|||
|
|
H --> M
|
|||
|
|
I --> M
|
|||
|
|
J --> M
|
|||
|
|
K --> M
|
|||
|
|
F --> N
|
|||
|
|
G --> N
|
|||
|
|
H --> N
|
|||
|
|
I --> N
|
|||
|
|
J --> N
|
|||
|
|
K --> N
|
|||
|
|
E --> F
|
|||
|
|
E --> G
|
|||
|
|
E --> H
|
|||
|
|
E --> I
|
|||
|
|
E --> J
|
|||
|
|
E --> K
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 📁 项目结构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
jiebanke/
|
|||
|
|
├── admin-system/ # 后台管理系统 (Vue.js)
|
|||
|
|
├── backend-java/ # 后端Java微服务
|
|||
|
|
│ ├── eureka-server/ # 服务注册与发现
|
|||
|
|
│ ├── gateway-service/ # API网关
|
|||
|
|
│ ├── auth-service/ # 认证服务
|
|||
|
|
│ ├── user-service/ # 用户服务
|
|||
|
|
│ ├── travel-service/ # 旅行服务
|
|||
|
|
│ ├── animal-service/ # 动物服务
|
|||
|
|
│ ├── order-service/ # 订单服务
|
|||
|
|
│ ├── promotion-service/ # 推广服务
|
|||
|
|
│ ├── common/ # 公共模块
|
|||
|
|
│ ├── scripts/ # 脚本文件
|
|||
|
|
│ ├── docker-compose.yml # Docker编排文件
|
|||
|
|
│ └── pom.xml # Maven根配置
|
|||
|
|
├── mini-program/ # 微信小程序
|
|||
|
|
├── website/ # 官方网站
|
|||
|
|
├── docs/ # 文档目录
|
|||
|
|
└── README.md # 项目说明
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 🚀 快速开始
|
|||
|
|
|
|||
|
|
### 环境要求
|
|||
|
|
- Java 17
|
|||
|
|
- Maven 3.6+
|
|||
|
|
- Docker & Docker Compose
|
|||
|
|
- MySQL 8.0+
|
|||
|
|
- Redis 6.0+
|
|||
|
|
- RabbitMQ 3.8+
|
|||
|
|
|
|||
|
|
### 本地开发
|
|||
|
|
|
|||
|
|
1. 克隆项目
|
|||
|
|
```bash
|
|||
|
|
git clone https://github.com/your-username/jiebanke.git
|
|||
|
|
cd jiebanke
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
2. 构建后端服务
|
|||
|
|
```bash
|
|||
|
|
cd backend-java
|
|||
|
|
./build-services.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
3. 启动所有服务
|
|||
|
|
```bash
|
|||
|
|
# 使用Docker Compose启动
|
|||
|
|
docker-compose up -d
|
|||
|
|
|
|||
|
|
# 或使用启动脚本
|
|||
|
|
./start-services.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
4. 访问服务
|
|||
|
|
- Eureka Dashboard: http://localhost:8761
|
|||
|
|
- API Gateway: http://localhost:8080
|
|||
|
|
- API文档: http://localhost:8080/doc.html
|
|||
|
|
|
|||
|
|
### 前端开发
|
|||
|
|
|
|||
|
|
#### 后台管理系统
|
|||
|
|
```bash
|
|||
|
|
cd admin-system
|
|||
|
|
npm install
|
|||
|
|
npm run dev
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 官方网站
|
|||
|
|
```bash
|
|||
|
|
cd website
|
|||
|
|
npm install
|
|||
|
|
npm run dev
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 微信小程序
|
|||
|
|
使用微信开发者工具打开`mini-program`目录
|
|||
|
|
|
|||
|
|
## 📖 文档
|
|||
|
|
|
|||
|
|
详细的文档请查看 [docs](docs/) 目录:
|
|||
|
|
|
|||
|
|
- [架构设计文档](docs/architecture-java.md)
|
|||
|
|
- [API接口文档](docs/API_DOCS_JAVA.md)
|
|||
|
|
- [数据库设计文档](docs/database-design-java.md)
|
|||
|
|
- [部署指南](docs/DEPLOYMENT_JAVA.md)
|
|||
|
|
- [性能优化指南](backend-java/PERFORMANCE_OPTIMIZATION.md)
|
|||
|
|
|
|||
|
|
## 🛠️ 技术栈
|
|||
|
|
|
|||
|
|
### 后端技术栈
|
|||
|
|
- **核心框架**: Spring Boot 3.1.0, Spring Cloud 2022.0.3
|
|||
|
|
- **服务治理**: Eureka Server
|
|||
|
|
- **API网关**: Spring Cloud Gateway
|
|||
|
|
- **数据库**: MySQL 8.0, MyBatis-Plus
|
|||
|
|
- **缓存**: Redis
|
|||
|
|
- **消息队列**: RabbitMQ
|
|||
|
|
- **安全框架**: Spring Security, JWT
|
|||
|
|
- **构建工具**: Maven
|
|||
|
|
- **测试框架**: JUnit 5, Mockito
|
|||
|
|
|
|||
|
|
### 前端技术栈
|
|||
|
|
- **后台管理**: Vue 3, Element Plus
|
|||
|
|
- **微信小程序**: 原生小程序, Vant Weapp
|
|||
|
|
- **官方网站**: Vue 3, Vue Router
|
|||
|
|
|
|||
|
|
## 📦 部署
|
|||
|
|
|
|||
|
|
### Docker部署
|
|||
|
|
```bash
|
|||
|
|
cd backend-java
|
|||
|
|
docker-compose up -d
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 生产环境部署
|
|||
|
|
请参考 [部署指南](docs/DEPLOYMENT_JAVA.md)
|
|||
|
|
|
|||
|
|
## 🧪 测试
|
|||
|
|
|
|||
|
|
### 后端测试
|
|||
|
|
```bash
|
|||
|
|
cd backend-java
|
|||
|
|
mvn test
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### API测试
|
|||
|
|
使用Postman或curl测试API接口
|
|||
|
|
|
|||
|
|
## 🤝 贡献
|
|||
|
|
|
|||
|
|
欢迎提交Issue和Pull Request来改进项目。
|
|||
|
|
|
|||
|
|
## 📄 许可证
|
|||
|
|
|
|||
|
|
本项目采用MIT许可证,详情请见 [LICENSE](LICENSE) 文件。
|
|||
|
|
|
|||
|
|
## 📞 联系我们
|
|||
|
|
|
|||
|
|
- 邮箱: support@jiebanke.com
|
|||
|
|
- 官网: https://www.jiebanke.com
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
*最后更新: 2025年* 📅
|