Files
vifo a7f3ee3565 refactor: 全局替换 spring-ai -> rui-framework
同步仓库名称变更,涉及 16 个文件 66 处引用:
- ai-skills: 菜单配置
- backend/guides: AI操作手册、环境配置、部署、gitnexus、opencode 工作流
- backend: 模块创建规则、通信规范、协作工作流、实施规范
- frontend: 收银设计、管理后台实施计划
- standards: 数据库设计规范
2026-06-08 12:56:39 +08:00

294 lines
6.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 部署指南
## 🎯 部署架构
```
┌─────────────────────────────────────────┐
│ Nginx 网关 │
│ (负载均衡/静态资源) │
└──────────────┬──────────────────────────┘
┌───────┴───────┐
▼ ▼
┌─────────────┐ ┌─────────────┐
│ 前端静态资源 │ │ rui-gateway │
│ (dist目录) │ │ Spring Cloud│
└─────────────┘ │ Gateway │
└──────┬──────┘
┌────────────┼────────────┐
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│rui-auth │ │rui- │ │rui- │
│(认证) │ │service │ │cashier │
└─────────┘ │(系统) │ │(收银) │
└─────────┘ └─────────┘
┌──────┴──────┐
▼ ▼
┌──────────┐ ┌──────────┐
│rui-payment│ │ MySQL │
│ (支付) │ │ (数据库) │
└──────────┘ └──────────┘
```
---
## 🐳 Docker 部署
### 1. 构建镜像
```bash
# 进入后端目录
cd ~/rhkj/rui-framework/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
```
---
> **最后提醒**:生产环境部署前务必在测试环境验证!