docs: 迁移 spring-ai 通用文档到 rui-docs
- 添加 backend/项目实施规范.md - 添加 backend/业务应用模块创建规则.md - 添加 backend/guides/deployment-guide.md - 添加 frontend/admin-ui-icon-guide.md - 添加 frontend/admin-ui-status.md - 更新 README.md 文档索引
This commit is contained in:
@@ -0,0 +1,294 @@
|
||||
# 部署指南
|
||||
|
||||
## 🎯 部署架构
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────┐
|
||||
│ Nginx 网关 │
|
||||
│ (负载均衡/静态资源) │
|
||||
└──────────────┬──────────────────────────┘
|
||||
│
|
||||
┌───────┴───────┐
|
||||
▼ ▼
|
||||
┌─────────────┐ ┌─────────────┐
|
||||
│ 前端静态资源 │ │ rui-gateway │
|
||||
│ (dist目录) │ │ Spring Cloud│
|
||||
└─────────────┘ │ Gateway │
|
||||
└──────┬──────┘
|
||||
│
|
||||
┌────────────┼────────────┐
|
||||
▼ ▼ ▼
|
||||
┌─────────┐ ┌─────────┐ ┌─────────┐
|
||||
│rui-auth │ │rui- │ │rui- │
|
||||
│(认证) │ │service │ │cashier │
|
||||
└─────────┘ │(系统) │ │(收银) │
|
||||
└─────────┘ └─────────┘
|
||||
│
|
||||
┌──────┴──────┐
|
||||
▼ ▼
|
||||
┌──────────┐ ┌──────────┐
|
||||
│rui-payment│ │ MySQL │
|
||||
│ (支付) │ │ (数据库) │
|
||||
└──────────┘ └──────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🐳 Docker 部署
|
||||
|
||||
### 1. 构建镜像
|
||||
|
||||
```bash
|
||||
# 进入后端目录
|
||||
cd ~/rhkj/spring-ai/backend
|
||||
|
||||
# Maven 打包
|
||||
mvn clean package -DskipTests
|
||||
|
||||
# 构建 Docker 镜像(以 gateway 为例)
|
||||
cd rui-gateway
|
||||
docker build -t rui-gateway:latest .
|
||||
|
||||
# 构建其他服务...
|
||||
cd ../rui-auth && docker build -t rui-auth:latest .
|
||||
cd ../rui-service/rui-service-system && docker build -t rui-service-system:latest .
|
||||
```
|
||||
|
||||
### 2. docker-compose.yml
|
||||
|
||||
```yaml
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
# MySQL
|
||||
mysql:
|
||||
image: mysql:8.0
|
||||
container_name: rui-mysql
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: root123
|
||||
MYSQL_DATABASE: rui_cloud
|
||||
ports:
|
||||
- "3306:3306"
|
||||
volumes:
|
||||
- mysql-data:/var/lib/mysql
|
||||
|
||||
# Redis
|
||||
redis:
|
||||
image: redis:7-alpine
|
||||
container_name: rui-redis
|
||||
ports:
|
||||
- "6379:6379"
|
||||
|
||||
# Nacos (注册中心)
|
||||
nacos:
|
||||
image: nacos/nacos-server:v2.2.3
|
||||
container_name: rui-nacos
|
||||
environment:
|
||||
MODE: standalone
|
||||
ports:
|
||||
- "8848:8848"
|
||||
|
||||
# Gateway
|
||||
gateway:
|
||||
image: rui-gateway:latest
|
||||
container_name: rui-gateway
|
||||
ports:
|
||||
- "8080:8080"
|
||||
depends_on:
|
||||
- nacos
|
||||
|
||||
# Auth
|
||||
auth:
|
||||
image: rui-auth:latest
|
||||
container_name: rui-auth
|
||||
depends_on:
|
||||
- nacos
|
||||
- mysql
|
||||
- redis
|
||||
|
||||
# Service
|
||||
service-system:
|
||||
image: rui-service-system:latest
|
||||
container_name: rui-service-system
|
||||
depends_on:
|
||||
- nacos
|
||||
- mysql
|
||||
- redis
|
||||
|
||||
volumes:
|
||||
mysql-data:
|
||||
```
|
||||
|
||||
### 3. 启动服务
|
||||
|
||||
```bash
|
||||
# 启动所有服务
|
||||
docker-compose up -d
|
||||
|
||||
# 查看日志
|
||||
docker-compose logs -f gateway
|
||||
|
||||
# 停止服务
|
||||
docker-compose down
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 生产环境部署
|
||||
|
||||
### 1. 服务器准备
|
||||
|
||||
| 服务器 | 配置 | 部署内容 |
|
||||
|--------|------|---------|
|
||||
| 服务器 1 | 4C8G | Gateway + Auth + Nacos |
|
||||
| 服务器 2 | 4C8G | Service + Cashier + Payment |
|
||||
| 服务器 3 | 4C8G | MySQL + Redis |
|
||||
| 服务器 4 | 2C4G | Nginx + 前端静态资源 |
|
||||
|
||||
### 2. 部署脚本
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
# deploy.sh - 生产环境部署脚本
|
||||
|
||||
set -e
|
||||
|
||||
# 配置
|
||||
SERVER_USER="root"
|
||||
SERVER_IP="192.168.1.100"
|
||||
JAR_PATH="target/*.jar"
|
||||
BACKUP_DIR="/opt/backup"
|
||||
APP_DIR="/opt/rui"
|
||||
|
||||
# 备份旧版本
|
||||
echo "备份旧版本..."
|
||||
ssh $SERVER_USER@$SERVER_IP "mkdir -p $BACKUP_DIR && cp $APP_DIR/*.jar $BACKUP_DIR/ 2>/dev/null || true"
|
||||
|
||||
# 上传新版本
|
||||
echo "上传新版本..."
|
||||
scp $JAR_PATH $SERVER_USER@$SERVER_IP:$APP_DIR/
|
||||
|
||||
# 重启服务
|
||||
echo "重启服务..."
|
||||
ssh $SERVER_USER@$SERVER_IP "cd $APP_DIR && ./restart.sh"
|
||||
|
||||
echo "部署完成!"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 监控与日志
|
||||
|
||||
### 日志查看
|
||||
|
||||
```bash
|
||||
# 查看实时日志
|
||||
docker logs -f rui-gateway
|
||||
|
||||
# 查看最近 100 行
|
||||
docker logs --tail=100 rui-gateway
|
||||
|
||||
# 查看指定时间范围
|
||||
docker logs --since="2024-01-01T00:00:00" rui-gateway
|
||||
```
|
||||
|
||||
### 健康检查
|
||||
|
||||
```bash
|
||||
# Gateway 健康检查
|
||||
curl http://localhost:8080/actuator/health
|
||||
|
||||
# 服务注册状态
|
||||
curl http://localhost:8848/nacos/v1/ns/instance/list?serviceName=rui-gateway
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 常见问题
|
||||
|
||||
### 1. 服务无法注册到 Nacos
|
||||
|
||||
**原因**:Nacos 地址配置错误
|
||||
**解决**:
|
||||
```yaml
|
||||
spring:
|
||||
cloud:
|
||||
nacos:
|
||||
discovery:
|
||||
server-addr: nacos:8848 # 使用容器名或 IP
|
||||
```
|
||||
|
||||
### 2. 数据库连接失败
|
||||
|
||||
**原因**:MySQL 未启动或网络不通
|
||||
**解决**:
|
||||
```bash
|
||||
# 检查 MySQL 状态
|
||||
docker ps | grep mysql
|
||||
|
||||
# 测试连接
|
||||
docker exec -it rui-mysql mysql -uroot -p -e "SELECT 1"
|
||||
```
|
||||
|
||||
### 3. 端口冲突
|
||||
|
||||
**原因**:端口被占用
|
||||
**解决**:
|
||||
```bash
|
||||
# 查看端口占用
|
||||
netstat -tlnp | grep 8080
|
||||
|
||||
# 修改 docker-compose.yml 端口映射
|
||||
ports:
|
||||
- "8081:8080" # 宿主机8081映射到容器8080
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📈 性能优化
|
||||
|
||||
### JVM 参数
|
||||
|
||||
```bash
|
||||
java -jar \
|
||||
-Xms512m \
|
||||
-Xmx1024m \
|
||||
-XX:+UseG1GC \
|
||||
-XX:MaxGCPauseMillis=200 \
|
||||
app.jar
|
||||
```
|
||||
|
||||
### 连接池配置
|
||||
|
||||
```yaml
|
||||
spring:
|
||||
datasource:
|
||||
hikari:
|
||||
minimum-idle: 5
|
||||
maximum-pool-size: 20
|
||||
idle-timeout: 300000
|
||||
max-lifetime: 1200000
|
||||
connection-timeout: 20000
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔄 滚动更新
|
||||
|
||||
```bash
|
||||
# 1. 启动新版本(不停止旧版本)
|
||||
docker-compose up -d --no-deps --scale gateway=2 gateway
|
||||
|
||||
# 2. 等待新版本健康检查通过
|
||||
sleep 30
|
||||
|
||||
# 3. 停止旧版本
|
||||
docker-compose stop gateway_1
|
||||
|
||||
# 4. 移除旧版本
|
||||
docker-compose rm -f gateway_1
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
> **最后提醒**:生产环境部署前务必在测试环境验证!
|
||||
Reference in New Issue
Block a user