|
|
@@ -0,0 +1,163 @@
|
|
|
+# 支付平台运维手册
|
|
|
+
|
|
|
+## 服务器信息
|
|
|
+
|
|
|
+- IP: `172.20.205.37`
|
|
|
+- 域名: `qcsj88888.com`、`api.qcsj88888.com`
|
|
|
+- 系统: Ubuntu (Alibaba Cloud ECS)
|
|
|
+
|
|
|
+## 容器拓扑
|
|
|
+
|
|
|
+| 容器 | 镜像 | 端口 | 网络 |
|
|
|
+|---|---|---|---|
|
|
|
+| java-backend | xjz/java-backend:1.0.0 | 8001 | app-tier, deploy_app-tier |
|
|
|
+| frontend | xjz/frontend:2.5.4 | 5173→80 | app-tier |
|
|
|
+| postgres | postgres:18.3 | 127.0.0.1:5432 | 宿主机, deploy_app-tier |
|
|
|
+| redis | redis:8.6.2-alpine | 6379 | deploy_app-tier |
|
|
|
+| nginx-proxy-manager | jc21/nginx-proxy-manager | 80/443/81 | deploy_app-tier |
|
|
|
+| gogs | gogs/gogs | 3000/2222 | deploy_app-tier |
|
|
|
+
|
|
|
+```
|
|
|
+qcsj88888.com (HTTPS)
|
|
|
+ ↓ NPM
|
|
|
+ ├── /api/v1/* → java-backend:8001
|
|
|
+ └── 其余 → frontend:5173
|
|
|
+```
|
|
|
+
|
|
|
+## 项目路径
|
|
|
+
|
|
|
+- 代码: `/root/payments/code/payment-platform`
|
|
|
+- Compose: `/root/payments/code/payment-platform/docker-compose.yml`
|
|
|
+- NPM 数据: `/root/payments/deploy/nginx-proxy-manager/data`
|
|
|
+
|
|
|
+## 常用操作
|
|
|
+
|
|
|
+### 查看容器状态
|
|
|
+
|
|
|
+```bash
|
|
|
+cd /root/payments/code/payment-platform
|
|
|
+docker compose ps
|
|
|
+docker stats --no-stream
|
|
|
+```
|
|
|
+
|
|
|
+### 查看日志
|
|
|
+
|
|
|
+```bash
|
|
|
+docker compose logs java-backend --tail 50 # 最近50行
|
|
|
+docker compose logs java-backend -f # 实时跟踪
|
|
|
+docker compose logs java-backend --since 5m # 最近5分钟
|
|
|
+```
|
|
|
+
|
|
|
+### 重启后端
|
|
|
+
|
|
|
+```bash
|
|
|
+docker compose restart java-backend
|
|
|
+```
|
|
|
+
|
|
|
+### 停止/启动
|
|
|
+
|
|
|
+```bash
|
|
|
+docker compose stop java-backend
|
|
|
+docker compose start java-backend
|
|
|
+```
|
|
|
+
|
|
|
+### 健康检查
|
|
|
+
|
|
|
+```bash
|
|
|
+curl http://localhost:8001/api/v1/payment/notify/health
|
|
|
+# 预期返回: {"code":0,"data":{"status":"ok"}}
|
|
|
+```
|
|
|
+
|
|
|
+## 升级部署
|
|
|
+
|
|
|
+```bash
|
|
|
+# === 本地 ===
|
|
|
+cd D:\project2\payment-platform\java
|
|
|
+mvn clean package -DskipTests
|
|
|
+scp target/payment-platform-1.0.0.jar root@172.20.205.37:/root/payments/code/payment-platform/java/target/
|
|
|
+
|
|
|
+# === 服务器 ===
|
|
|
+cd /root/payments/code/payment-platform/java
|
|
|
+docker build -t xjz/java-backend:1.0.0 .
|
|
|
+cd ..
|
|
|
+docker compose up -d java-backend
|
|
|
+docker compose logs java-backend --tail 20 -f
|
|
|
+```
|
|
|
+
|
|
|
+## 数据库迁移
|
|
|
+
|
|
|
+新增 SQL 脚本放在 `java/sql/`,服务器执行:
|
|
|
+
|
|
|
+```bash
|
|
|
+docker exec -i postgres psql -U admin -d payment_platform_prod < /root/payments/code/payment-platform/java/sql/xxx.sql
|
|
|
+```
|
|
|
+
|
|
|
+## 回滚到 Python
|
|
|
+
|
|
|
+```bash
|
|
|
+docker stop java-backend
|
|
|
+docker rm java-backend
|
|
|
+cd /root/payments/code/payment-platform
|
|
|
+git checkout master
|
|
|
+docker compose up -d backend
|
|
|
+```
|
|
|
+
|
|
|
+## 配置说明
|
|
|
+
|
|
|
+### JVM 参数
|
|
|
+
|
|
|
+```yaml
|
|
|
+JAVA_OPTS: "-Xms128m -Xmx256m -XX:+UseSerialGC -XX:MaxRAMPercentage=50 -XX:TieredStopAtLevel=1"
|
|
|
+```
|
|
|
+
|
|
|
+- `-Xms128m`: 初始堆 128MB
|
|
|
+- `-Xmx256m`: 最大堆 256MB
|
|
|
+- `-XX:+UseSerialGC`: 单线程 GC(2C 服务器避免并发 GC 开销)
|
|
|
+- `-XX:MaxRAMPercentage=50`: JVM 最多用 50% 物理内存
|
|
|
+- `-XX:TieredStopAtLevel=1`: 减少 JIT 编译层级,启动更快
|
|
|
+
|
|
|
+### 环境变量(数据库/Redis)
|
|
|
+
|
|
|
+```yaml
|
|
|
+SPRING_DATASOURCE_DRUID_URL: jdbc:postgresql://postgres:5432/payment_platform_prod?currentSchema=public
|
|
|
+SPRING_DATASOURCE_DRUID_USERNAME: admin
|
|
|
+SPRING_DATASOURCE_DRUID_PASSWORD: 'xjz#123321'
|
|
|
+SPRING_DATA_REDIS_HOST: redis
|
|
|
+SPRING_DATA_REDIS_PORT: 6379
|
|
|
+SPRING_DATA_REDIS_DATABASE: 0
|
|
|
+SPRING_DATA_REDIS_PASSWORD: '123456#xjz'
|
|
|
+```
|
|
|
+
|
|
|
+## 故障排查
|
|
|
+
|
|
|
+### 后端起不来
|
|
|
+
|
|
|
+```bash
|
|
|
+docker compose logs java-backend --tail 100
|
|
|
+```
|
|
|
+
|
|
|
+常见原因:
|
|
|
+- `Connection refused: postgres:5432` → postgres 没加入 deploy_app-tier,执行 `docker network connect deploy_app-tier postgres`
|
|
|
+- `OutOfMemoryError` → 调大 `-Xmx` 到 384m
|
|
|
+- 端口占用 → `lsof -i:8001`,停掉占用进程
|
|
|
+
|
|
|
+### 页面访问 502
|
|
|
+
|
|
|
+检查后端是否正常:
|
|
|
+```bash
|
|
|
+curl http://localhost:8001/api/v1/payment/notify/health
|
|
|
+```
|
|
|
+后端正常则查 NPM 是否在线:`docker ps | grep nginx-proxy-manager`
|
|
|
+
|
|
|
+### 磁盘空间
|
|
|
+
|
|
|
+```bash
|
|
|
+docker system prune -a --filter "until=72h" # 清理72小时前的旧镜像
|
|
|
+```
|
|
|
+
|
|
|
+## 备份
|
|
|
+
|
|
|
+```bash
|
|
|
+# 数据库
|
|
|
+docker exec postgres pg_dump -U admin payment_platform_prod > /root/backup/payment_$(date +%Y%m%d).sql
|
|
|
+```
|