docs: 更新部署运维文档至v2.0
主要更新内容: - 新增Docker Compose部署章节 - 更新服务端口配置(Gateway:8000, fund-sys:8100等) - 新增多租户混合负载模式说明 - 更新Prometheus+Grafana监控体系配置 - 新增链路追踪日志格式(TraceId+SpanId) - 更新环境变量配置 - 新增访问地址汇总和默认账号信息
This commit is contained in:
parent
04ffcd804a
commit
fa0a356d08
405
doc/部署运维文档.md
405
doc/部署运维文档.md
@ -1,7 +1,7 @@
|
|||||||
# 资金服务平台部署运维文档
|
# 资金服务平台部署运维文档
|
||||||
|
|
||||||
> 版本: v1.0
|
> 版本: v2.0
|
||||||
> 更新日期: 2026-02-13
|
> 更新日期: 2026-02-20
|
||||||
> 作者: zhangjf
|
> 作者: zhangjf
|
||||||
|
|
||||||
---
|
---
|
||||||
@ -24,12 +24,12 @@
|
|||||||
#### 1.2.1 安装 JDK 21
|
#### 1.2.1 安装 JDK 21
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 下载并解压 JDK 21
|
# Ubuntu/Debian
|
||||||
wget https://download.java.net/openjdk/jdk21/ri/openjdk-21+35_linux-x64_bin.tar.gz
|
sudo apt update
|
||||||
tar -xzf openjdk-21+35_linux-x64_bin.tar.gz -C /opt/
|
sudo apt install openjdk-21-jdk
|
||||||
|
|
||||||
# 配置环境变量
|
# 配置环境变量
|
||||||
echo 'export JAVA_HOME=/opt/jdk-21' >> ~/.bashrc
|
echo 'export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64' >> ~/.bashrc
|
||||||
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
|
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
|
||||||
source ~/.bashrc
|
source ~/.bashrc
|
||||||
|
|
||||||
@ -157,16 +157,177 @@ npm install
|
|||||||
npm run dev
|
npm run dev
|
||||||
|
|
||||||
# 4. 访问系统
|
# 4. 访问系统
|
||||||
# 管理后台:http://localhost:5173
|
# 管理后台:http://localhost:3000
|
||||||
# 网关地址:http://localhost:8080
|
# 网关地址:http://localhost:8000
|
||||||
# Nacos 控制台:http://localhost:8048/nacos
|
# Nacos 控制台:http://localhost:8048/nacos
|
||||||
|
# Grafana 监控:http://localhost:3000 (Docker环境) 或 http://localhost:3001 (本地开发)
|
||||||
|
# Prometheus:http://localhost:9090
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 二、测试环境部署
|
## 二、Docker Compose 部署
|
||||||
|
|
||||||
### 2.1 服务器配置
|
### 2.1 部署架构
|
||||||
|
|
||||||
|
项目支持 **Docker Compose 一键部署**,包含以下服务组件:
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
│ Docker Compose 部署架构 │
|
||||||
|
├─────────────────────────────────────────────────────────────────────────────┤
|
||||||
|
│ │
|
||||||
|
│ ┌──────────────┐ │
|
||||||
|
│ │ 前端服务 │ │
|
||||||
|
│ │ fund-admin │ ← 管理后台 (http://localhost:80) │
|
||||||
|
│ │ fund-mobile │ ← 移动端H5 (http://localhost:81) │
|
||||||
|
│ └──────┬───────┘ │
|
||||||
|
│ │ │
|
||||||
|
│ ┌──────┴───────┐ │
|
||||||
|
│ │ Gateway │ ← API网关 (http://localhost:8000) │
|
||||||
|
│ │ :8000 │ │
|
||||||
|
│ └──────┬───────┘ │
|
||||||
|
│ │ │
|
||||||
|
│ ┌──────┴──────────────────────────────────────────┐ │
|
||||||
|
│ │ │ │
|
||||||
|
│ ▼ ▼ ▼ ▼ │ │
|
||||||
|
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │
|
||||||
|
│ │fund-sys │ │fund-cust│ │fund-proj│ │fund-req │ │ ← 业务微服务集群 │
|
||||||
|
│ │ :8100 │ │ :8200 │ │ :8300 │ │ :8400 │ │ │
|
||||||
|
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │ │
|
||||||
|
│ │ │
|
||||||
|
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │
|
||||||
|
│ │fund-exp │ │fund-rcpt│ │fund-rpt │ │ │
|
||||||
|
│ │ :8500 │ │ :8600 │ │ :8700 │ │ │
|
||||||
|
│ └─────────┘ └─────────┘ └─────────┘ │ │
|
||||||
|
│ │ │
|
||||||
|
│ ┌──────────────────────┬─────────────────────┐ │ │
|
||||||
|
│ │ │ │ │ │
|
||||||
|
│ ▼ ▼ ▼ │ │
|
||||||
|
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
|
||||||
|
│ │ MySQL │ │ Redis │ │ Nacos │ ← 基础设施 │
|
||||||
|
│ │ :3306 │ │ :6379 │ │ :8848 │ │
|
||||||
|
│ └─────────┘ └─────────┘ └─────────┘ │
|
||||||
|
│ │
|
||||||
|
│ ┌─────────────────────────────────────────────────────────────────────┐ │
|
||||||
|
│ │ 监控体系 │ │
|
||||||
|
│ │ ┌─────────────┐ ┌─────────────┐ │ │
|
||||||
|
│ │ │ Prometheus │ │ Grafana │ │ │
|
||||||
|
│ │ │ :9090 │──────────────│ :3000 │ │ │
|
||||||
|
│ │ └─────────────┘ └─────────────┘ │ │
|
||||||
|
│ └─────────────────────────────────────────────────────────────────────┘ │
|
||||||
|
│ │
|
||||||
|
└─────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2.2 服务清单
|
||||||
|
|
||||||
|
| 服务 | 端口 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| fund-admin | 80 | 管理后台前端 |
|
||||||
|
| fund-mobile | 81 | 移动端H5 |
|
||||||
|
| gateway | 8000 | API网关 |
|
||||||
|
| fund-sys | 8100 | 系统管理服务 |
|
||||||
|
| fund-sys-vip001 | 8101 | 系统服务VIP专属实例 |
|
||||||
|
| fund-cust | 8200 | 客户管理服务 |
|
||||||
|
| fund-proj | 8300 | 项目管理服务 |
|
||||||
|
| fund-req | 8400 | 需求工单服务 |
|
||||||
|
| fund-exp | 8500 | 支出管理服务 |
|
||||||
|
| fund-receipt | 8600 | 收款管理服务 |
|
||||||
|
| fund-report | 8700 | 报表服务 |
|
||||||
|
| fund-file | 8800 | 文件服务 |
|
||||||
|
| mysql | 3306 | MySQL数据库 |
|
||||||
|
| redis | 6379 | Redis缓存 |
|
||||||
|
| nacos | 8848 | Nacos服务注册中心 |
|
||||||
|
| prometheus | 9090 | Prometheus监控 |
|
||||||
|
| grafana | 3000 | Grafana可视化 |
|
||||||
|
|
||||||
|
### 2.3 快速部署
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. 克隆项目
|
||||||
|
git clone <repository-url>
|
||||||
|
cd fundplatform
|
||||||
|
|
||||||
|
# 2. 初始化环境
|
||||||
|
./deploy.sh init
|
||||||
|
|
||||||
|
# 3. 构建镜像
|
||||||
|
./deploy.sh build
|
||||||
|
|
||||||
|
# 4. 启动所有服务
|
||||||
|
./deploy.sh start
|
||||||
|
|
||||||
|
# 5. 查看服务状态
|
||||||
|
./deploy.sh status
|
||||||
|
|
||||||
|
# 6. 查看日志
|
||||||
|
./deploy.sh logs --service fund-sys
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2.4 部署脚本命令
|
||||||
|
|
||||||
|
| 命令 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| `./deploy.sh start` | 启动所有服务 |
|
||||||
|
| `./deploy.sh stop` | 停止所有服务 |
|
||||||
|
| `./deploy.sh restart` | 重启所有服务 |
|
||||||
|
| `./deploy.sh build` | 构建所有镜像 |
|
||||||
|
| `./deploy.sh rebuild` | 重新构建(不使用缓存) |
|
||||||
|
| `./deploy.sh logs` | 查看服务日志 |
|
||||||
|
| `./deploy.sh status` | 查看服务状态 |
|
||||||
|
| `./deploy.sh clean` | 清理未使用的镜像和容器 |
|
||||||
|
| `./deploy.sh init` | 初始化环境(首次部署) |
|
||||||
|
|
||||||
|
### 2.5 多租户混合负载模式
|
||||||
|
|
||||||
|
项目支持 **多租户混合负载模式**,可实现VIP专属实例与普通租户共享实例并存:
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────────────────────────────────────────────────────┐
|
||||||
|
│ 多租户混合负载模式 │
|
||||||
|
├─────────────────────────────────────────────────────────────────┤
|
||||||
|
│ │
|
||||||
|
│ 请求 ──► Gateway ──► TenantGatewayFilter (提取租户ID) │
|
||||||
|
│ │ │
|
||||||
|
│ ┌───────────────┼───────────────┐ │
|
||||||
|
│ ▼ ▼ ▼ │
|
||||||
|
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
||||||
|
│ │ 共享实例 │ │ VIP_004专属 │ │ VIP_005专属 │ │
|
||||||
|
│ │ (多租户共享) │ │ (单租户独占) │ │ (单租户独占) │ │
|
||||||
|
│ │ fund-sys │ │ fund-sys- │ │ fund-sys- │ │
|
||||||
|
│ │ :8100 │ │ vip001:8101 │ │ vip002:8102 │ │
|
||||||
|
│ │ │ │ │ │ │ │
|
||||||
|
│ │ TENANT_ID: │ │ TENANT_ID: │ │ TENANT_ID: │ │
|
||||||
|
│ │ VIP_001, │ │ VIP_004 │ │ VIP_005 │ │
|
||||||
|
│ │ VIP_002, │ │ │ │ │ │
|
||||||
|
│ │ VIP_003 │ │ │ │ │ │
|
||||||
|
│ └──────────────┘ └──────────────┘ └──────────────┘ │
|
||||||
|
│ │
|
||||||
|
└─────────────────────────────────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
**配置方式**:
|
||||||
|
|
||||||
|
在 `docker-compose.yml` 中通过环境变量 `TENANT_ID` 指定实例服务的租户:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# 共享实例 - 服务多个租户
|
||||||
|
fund-sys:
|
||||||
|
environment:
|
||||||
|
TENANT_ID: "VIP_001,VIP_002,VIP_003" # 逗号分隔,服务多个租户
|
||||||
|
|
||||||
|
# VIP专属实例 - 单租户独占
|
||||||
|
fund-sys-vip001:
|
||||||
|
environment:
|
||||||
|
TENANT_ID: "VIP_004" # 单租户专属实例
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 三、测试环境部署
|
||||||
|
|
||||||
|
### 3.1 服务器配置
|
||||||
|
|
||||||
| 组件 | 配置 | 数量 |
|
| 组件 | 配置 | 数量 |
|
||||||
|------|------|------|
|
|------|------|------|
|
||||||
@ -174,7 +335,7 @@ npm run dev
|
|||||||
| 数据库服务器 | 4核8G | 1台 |
|
| 数据库服务器 | 4核8G | 1台 |
|
||||||
| 缓存服务器 | 2核4G | 1台 |
|
| 缓存服务器 | 2核4G | 1台 |
|
||||||
|
|
||||||
### 2.2 部署架构
|
### 3.2 部署架构
|
||||||
|
|
||||||
```
|
```
|
||||||
┌─────────────────────────────────────────────────────────────┐
|
┌─────────────────────────────────────────────────────────────┐
|
||||||
@ -212,9 +373,9 @@ npm run dev
|
|||||||
└─────────────────────────────────────────────────────────────┘
|
└─────────────────────────────────────────────────────────────┘
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2.3 部署步骤
|
### 3.3 部署步骤
|
||||||
|
|
||||||
#### 2.3.1 部署 Nacos
|
#### 3.3.1 部署 Nacos
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 在服务器上安装 Nacos
|
# 在服务器上安装 Nacos
|
||||||
@ -237,7 +398,7 @@ cd /opt/nacos/bin
|
|||||||
sh startup.sh
|
sh startup.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 2.3.2 部署 MySQL
|
#### 3.3.2 部署 MySQL
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 创建数据库和用户
|
# 创建数据库和用户
|
||||||
@ -253,7 +414,7 @@ mysql -u fund_user -p'Fund@123456' fund_platform < fund_platform_schema.sql
|
|||||||
mysql -u fund_user -p'Fund@123456' fund_platform < fund_platform_init.sql
|
mysql -u fund_user -p'Fund@123456' fund_platform < fund_platform_init.sql
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 2.3.3 部署 Redis
|
#### 3.3.3 部署 Redis
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 配置 Redis
|
# 配置 Redis
|
||||||
@ -270,7 +431,7 @@ EOF
|
|||||||
sudo systemctl restart redis
|
sudo systemctl restart redis
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 2.3.4 部署应用服务
|
#### 3.3.4 部署应用服务
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 1. 打包应用
|
# 1. 打包应用
|
||||||
@ -302,7 +463,7 @@ chmod +x /opt/fundplatform/start.sh
|
|||||||
./start.sh sys fund-sys-1.0.0.jar
|
./start.sh sys fund-sys-1.0.0.jar
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 2.3.5 部署 Nginx
|
#### 3.3.5 部署 Nginx
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 安装 Nginx
|
# 安装 Nginx
|
||||||
@ -342,9 +503,9 @@ sudo systemctl restart nginx
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 三、生产环境部署
|
## 四、生产环境部署
|
||||||
|
|
||||||
### 3.1 服务器配置
|
### 4.1 服务器配置
|
||||||
|
|
||||||
| 组件 | 配置 | 数量 | 说明 |
|
| 组件 | 配置 | 数量 | 说明 |
|
||||||
|------|------|------|------|
|
|------|------|------|------|
|
||||||
@ -354,7 +515,7 @@ sudo systemctl restart nginx
|
|||||||
| Nacos 服务器 | 4核8G | 3台 | Nacos 集群 |
|
| Nacos 服务器 | 4核8G | 3台 | Nacos 集群 |
|
||||||
| Nginx 服务器 | 4核8G | 2台 | 负载均衡 |
|
| Nginx 服务器 | 4核8G | 2台 | 负载均衡 |
|
||||||
|
|
||||||
### 3.2 部署架构
|
### 4.2 部署架构
|
||||||
|
|
||||||
```
|
```
|
||||||
┌─────────────────────────────────────────────────────────────────────────────┐
|
┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
@ -398,9 +559,9 @@ sudo systemctl restart nginx
|
|||||||
└─────────────────────────────────────────────────────────────────────────────┘
|
└─────────────────────────────────────────────────────────────────────────────┘
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3.3 高可用配置
|
### 4.3 高可用配置
|
||||||
|
|
||||||
#### 3.3.1 MySQL 主从配置
|
#### 4.3.1 MySQL 主从配置
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 主库配置
|
# 主库配置
|
||||||
@ -429,7 +590,7 @@ CHANGE MASTER TO
|
|||||||
START SLAVE;
|
START SLAVE;
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 3.3.2 Redis 集群配置
|
#### 4.3.2 Redis 集群配置
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 创建 6 个节点(3主3从)
|
# 创建 6 个节点(3主3从)
|
||||||
@ -446,7 +607,7 @@ redis-cli --cluster create \
|
|||||||
--cluster-replicas 1
|
--cluster-replicas 1
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 3.3.3 Nacos 集群配置
|
#### 4.3.3 Nacos 集群配置
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 配置 cluster.conf
|
# 配置 cluster.conf
|
||||||
@ -467,7 +628,7 @@ db.password.0=nacos_password
|
|||||||
sh startup.sh
|
sh startup.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 3.3.4 Nginx + Keepalived
|
#### 4.3.4 Nginx + Keepalived
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 安装 Keepalived
|
# 安装 Keepalived
|
||||||
@ -524,14 +685,17 @@ chmod +x /etc/keepalived/check_nginx.sh
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 四、运维手册
|
## 五、运维手册
|
||||||
|
|
||||||
### 4.1 监控体系
|
### 5.1 监控体系
|
||||||
|
|
||||||
#### 4.1.1 应用监控(Prometheus + Grafana)
|
#### 5.1.1 应用监控(Prometheus + Grafana)
|
||||||
|
|
||||||
|
项目已集成 Prometheus + Grafana 监控体系,通过 Docker Compose 自动部署。
|
||||||
|
|
||||||
|
**Prometheus 配置** (`docker/prometheus/prometheus.yml`):
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# prometheus.yml
|
|
||||||
global:
|
global:
|
||||||
scrape_interval: 15s
|
scrape_interval: 15s
|
||||||
|
|
||||||
@ -539,15 +703,24 @@ scrape_configs:
|
|||||||
- job_name: 'fund-gateway'
|
- job_name: 'fund-gateway'
|
||||||
metrics_path: '/actuator/prometheus'
|
metrics_path: '/actuator/prometheus'
|
||||||
static_configs:
|
static_configs:
|
||||||
- targets: ['app-server-1:8080', 'app-server-2:8080', 'app-server-3:8080']
|
- targets: ['gateway:8000']
|
||||||
|
|
||||||
- job_name: 'fund-sys'
|
- job_name: 'fund-sys'
|
||||||
metrics_path: '/actuator/prometheus'
|
metrics_path: '/actuator/prometheus'
|
||||||
static_configs:
|
static_configs:
|
||||||
- targets: ['app-server-1:8081', 'app-server-2:8081', 'app-server-3:8081']
|
- targets: ['fund-sys:8100', 'fund-sys-vip001:8101']
|
||||||
|
|
||||||
|
- job_name: 'fund-cust'
|
||||||
|
metrics_path: '/actuator/prometheus'
|
||||||
|
static_configs:
|
||||||
|
- targets: ['fund-cust:8200']
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 4.1.2 关键监控指标
|
**访问地址**:
|
||||||
|
- Prometheus: http://localhost:9090
|
||||||
|
- Grafana: http://localhost:3000 (默认账号: admin / admin123)
|
||||||
|
|
||||||
|
#### 5.1.2 关键监控指标
|
||||||
|
|
||||||
| 指标 | 告警阈值 | 说明 |
|
| 指标 | 告警阈值 | 说明 |
|
||||||
|------|----------|------|
|
|------|----------|------|
|
||||||
@ -559,9 +732,11 @@ scrape_configs:
|
|||||||
| MySQL 连接数 | > 80% | 数据库连接数使用率 |
|
| MySQL 连接数 | > 80% | 数据库连接数使用率 |
|
||||||
| Redis 内存使用率 | > 80% | Redis 内存使用百分比 |
|
| Redis 内存使用率 | > 80% | Redis 内存使用百分比 |
|
||||||
|
|
||||||
### 4.2 日志管理
|
### 5.2 日志管理
|
||||||
|
|
||||||
#### 4.2.1 日志配置
|
#### 5.2.1 日志配置
|
||||||
|
|
||||||
|
项目采用 Logback 作为日志框架,支持 **TraceId + SpanId 链路追踪**:
|
||||||
|
|
||||||
```xml
|
```xml
|
||||||
<!-- logback-spring.xml -->
|
<!-- logback-spring.xml -->
|
||||||
@ -569,20 +744,32 @@ scrape_configs:
|
|||||||
<!-- 控制台输出 -->
|
<!-- 控制台输出 -->
|
||||||
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId}] [%X{tid}] [%X{uid}] [%X{uname}] %-5level %logger{36} - %msg%n</pattern>
|
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId:-}][%X{spanId:-}] %-5level %logger{50} - %msg%n</pattern>
|
||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
<!-- 文件输出 -->
|
<!-- 文件输出 -->
|
||||||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||||
<file>/var/log/fundplatform/app.log</file>
|
<file>./logs/${APP_NAME}/info.log</file>
|
||||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||||
<fileNamePattern>/var/log/fundplatform/app.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
<fileNamePattern>./logs/${APP_NAME}/info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
||||||
<maxHistory>30</maxHistory>
|
<maxHistory>30</maxHistory>
|
||||||
<maxFileSize>100MB</maxFileSize>
|
<maxFileSize>100MB</maxFileSize>
|
||||||
</rollingPolicy>
|
</rollingPolicy>
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId}] %-5level %logger{36} - %msg%n</pattern>
|
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId:-}][%X{spanId:-}] %-5level %logger{50} - %msg%n</pattern>
|
||||||
|
</encoder>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<!-- API请求日志 -->
|
||||||
|
<appender name="AOP_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||||
|
<file>./logs/${APP_NAME}/aop.log</file>
|
||||||
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||||
|
<fileNamePattern>./logs/${APP_NAME}/aop-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
||||||
|
<maxHistory>30</maxHistory>
|
||||||
|
</rollingPolicy>
|
||||||
|
<encoder>
|
||||||
|
<pattern>%msg%n</pattern>
|
||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
@ -593,7 +780,21 @@ scrape_configs:
|
|||||||
</configuration>
|
</configuration>
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 4.2.2 ELK 日志收集
|
**日志文件结构**:
|
||||||
|
```
|
||||||
|
logs/
|
||||||
|
├── fund-gateway/
|
||||||
|
│ ├── info.log # 主日志
|
||||||
|
│ ├── error.log # 错误日志
|
||||||
|
│ └── aop.log # API请求日志
|
||||||
|
├── fund-sys/
|
||||||
|
│ ├── info.log
|
||||||
|
│ ├── error.log
|
||||||
|
│ └── aop.log
|
||||||
|
└── ...
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 5.2.2 ELK 日志收集
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# filebeat.yml
|
# filebeat.yml
|
||||||
@ -613,9 +814,9 @@ output.elasticsearch:
|
|||||||
index: "fundplatform-%{+yyyy.MM.dd}"
|
index: "fundplatform-%{+yyyy.MM.dd}"
|
||||||
```
|
```
|
||||||
|
|
||||||
### 4.3 备份策略
|
### 5.3 备份策略
|
||||||
|
|
||||||
#### 4.3.1 数据库备份
|
#### 5.3.1 数据库备份
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
@ -640,7 +841,7 @@ find $BACKUP_DIR -name "${DB_NAME}_*.sql.gz" -mtime +7 -delete
|
|||||||
aws s3 cp $BACKUP_DIR/${DB_NAME}_${DATE}.sql.gz s3://fundplatform-backup/mysql/
|
aws s3 cp $BACKUP_DIR/${DB_NAME}_${DATE}.sql.gz s3://fundplatform-backup/mysql/
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 4.3.2 备份计划
|
#### 5.3.2 备份计划
|
||||||
|
|
||||||
| 备份类型 | 频率 | 保留时间 |
|
| 备份类型 | 频率 | 保留时间 |
|
||||||
|----------|------|----------|
|
|----------|------|----------|
|
||||||
@ -648,9 +849,9 @@ aws s3 cp $BACKUP_DIR/${DB_NAME}_${DATE}.sql.gz s3://fundplatform-backup/mysql/
|
|||||||
| 增量备份 | 每小时 | 7 天 |
|
| 增量备份 | 每小时 | 7 天 |
|
||||||
| 二进制日志 | 实时 | 7 天 |
|
| 二进制日志 | 实时 | 7 天 |
|
||||||
|
|
||||||
### 4.4 故障处理
|
### 5.4 故障处理
|
||||||
|
|
||||||
#### 4.4.1 常见故障及处理
|
#### 5.4.1 常见故障及处理
|
||||||
|
|
||||||
| 故障现象 | 可能原因 | 处理方案 |
|
| 故障现象 | 可能原因 | 处理方案 |
|
||||||
|----------|----------|----------|
|
|----------|----------|----------|
|
||||||
@ -660,7 +861,7 @@ aws s3 cp $BACKUP_DIR/${DB_NAME}_${DATE}.sql.gz s3://fundplatform-backup/mysql/
|
|||||||
| 接口超时 | 下游服务慢 | 检查依赖服务,增加熔断 |
|
| 接口超时 | 下游服务慢 | 检查依赖服务,增加熔断 |
|
||||||
| Redis 连接失败 | 连接数超限 | 增加连接池,检查连接泄露 |
|
| Redis 连接失败 | 连接数超限 | 增加连接池,检查连接泄露 |
|
||||||
|
|
||||||
#### 4.4.2 应急处理流程
|
#### 5.4.2 应急处理流程
|
||||||
|
|
||||||
```
|
```
|
||||||
1. 故障发现
|
1. 故障发现
|
||||||
@ -679,9 +880,9 @@ aws s3 cp $BACKUP_DIR/${DB_NAME}_${DATE}.sql.gz s3://fundplatform-backup/mysql/
|
|||||||
6. 故障复盘
|
6. 故障复盘
|
||||||
```
|
```
|
||||||
|
|
||||||
### 4.5 性能优化
|
### 5.5 性能优化
|
||||||
|
|
||||||
#### 4.5.1 JVM 调优
|
#### 5.5.1 JVM 调优
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 生产环境 JVM 参数
|
# 生产环境 JVM 参数
|
||||||
@ -696,7 +897,7 @@ java -server \
|
|||||||
-jar app.jar
|
-jar app.jar
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 4.5.2 MySQL 调优
|
#### 5.5.2 MySQL 调优
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
# my.cnf
|
# my.cnf
|
||||||
@ -723,7 +924,7 @@ slow_query_log_file = /var/log/mysql/slow.log
|
|||||||
long_query_time = 2
|
long_query_time = 2
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 4.5.3 Redis 调优
|
#### 5.5.3 Redis 调优
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# redis.conf
|
# redis.conf
|
||||||
@ -735,9 +936,9 @@ timeout 0
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 五、附录
|
## 六、附录
|
||||||
|
|
||||||
### 5.1 常用命令
|
### 6.1 常用命令
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 查看服务状态
|
# 查看服务状态
|
||||||
@ -746,37 +947,99 @@ systemctl status redis
|
|||||||
systemctl status nginx
|
systemctl status nginx
|
||||||
|
|
||||||
# 查看日志
|
# 查看日志
|
||||||
tail -f /var/log/fundplatform/app.log
|
tail -f logs/fund-gateway/info.log
|
||||||
tail -f /var/log/nginx/access.log
|
tail -f logs/fund-sys/aop.log
|
||||||
|
|
||||||
# 查看进程
|
# 查看进程
|
||||||
ps -ef | grep java
|
ps -ef | grep java
|
||||||
netstat -tlnp | grep 8080
|
netstat -tlnp | grep 8000
|
||||||
|
|
||||||
# 数据库操作
|
# 数据库操作
|
||||||
mysql -u root -p
|
mysql -u root -p'zjf@123456'
|
||||||
redis-cli -a password
|
redis-cli -a 'zjf@123456'
|
||||||
|
|
||||||
# Nacos 管理
|
# Nacos 管理
|
||||||
curl http://localhost:8848/nacos/v1/ns/instance/list?serviceName=fund-sys
|
curl http://localhost:8848/nacos/v1/ns/instance/list?serviceName=fund-sys
|
||||||
|
|
||||||
|
# Docker 操作
|
||||||
|
docker ps
|
||||||
|
docker logs fund-gateway
|
||||||
|
docker-compose restart fund-sys
|
||||||
```
|
```
|
||||||
|
|
||||||
### 5.2 端口清单
|
### 6.2 端口清单
|
||||||
|
|
||||||
| 服务 | 端口 | 说明 |
|
| 服务 | 本地开发端口 | Docker端口 | 说明 |
|
||||||
|------|------|------|
|
|------|-------------|------------|------|
|
||||||
| Nginx | 80/443 | Web 服务 |
|
| fund-admin | 3000 | 80 | 管理后台前端 |
|
||||||
| Gateway | 8080 | API 网关 |
|
| fund-mobile | 5174 | 81 | 移动端H5 |
|
||||||
| fund-sys | 8081 | 系统服务 |
|
| Gateway | 8000 | 8000 | API网关 |
|
||||||
| fund-cust | 8082 | 客户中心 |
|
| fund-sys | 8100 | 8100 | 系统管理服务 |
|
||||||
| fund-proj | 8083 | 项目中心 |
|
| fund-sys-vip001 | - | 8101 | 系统服务VIP实例 |
|
||||||
| fund-req | 8084 | 需求中心 |
|
| fund-cust | 8200 | 8200 | 客户管理服务 |
|
||||||
| fund-exp | 8085 | 支出中心 |
|
| fund-proj | 8300 | 8300 | 项目管理服务 |
|
||||||
| fund-receipt | 8086 | 收款中心 |
|
| fund-req | 8400 | 8400 | 需求工单服务 |
|
||||||
| MySQL | 3306 | 数据库 |
|
| fund-exp | 8500 | 8500 | 支出管理服务 |
|
||||||
| Redis | 6379 | 缓存 |
|
| fund-receipt | 8600 | 8600 | 收款管理服务 |
|
||||||
| Nacos | 8848 | 服务注册 |
|
| fund-report | 8700 | 8700 | 报表服务 |
|
||||||
| Nacos 控制台 | 8048 | 配置中心 |
|
| fund-file | 8800 | 8800 | 文件服务 |
|
||||||
|
| MySQL | 3306 | 3306 | 数据库 |
|
||||||
|
| Redis | 6379 | 6379 | 缓存 |
|
||||||
|
| Nacos API | 8848 | 8848 | 服务注册 |
|
||||||
|
| Nacos 控制台 | 8048 | - | 配置中心 |
|
||||||
|
| Prometheus | 9090 | 9090 | 监控 |
|
||||||
|
| Grafana | 3001 | 3000 | 可视化 |
|
||||||
|
|
||||||
|
### 6.3 环境变量配置
|
||||||
|
|
||||||
|
项目使用 `.env` 文件管理环境变量:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# ============================================
|
||||||
|
# 资金服务平台环境配置
|
||||||
|
# ============================================
|
||||||
|
|
||||||
|
# MySQL 配置
|
||||||
|
MYSQL_HOST=localhost
|
||||||
|
MYSQL_PORT=3306
|
||||||
|
MYSQL_USERNAME=root
|
||||||
|
MYSQL_PASSWORD=zjf@123456
|
||||||
|
MYSQL_AUTH_PLUGIN=caching_sha2_password
|
||||||
|
|
||||||
|
# Redis 配置
|
||||||
|
REDIS_HOST=localhost
|
||||||
|
REDIS_PORT=6379
|
||||||
|
REDIS_PASSWORD=zjf@123456
|
||||||
|
|
||||||
|
# Nacos 配置
|
||||||
|
NACOS_HOST=localhost
|
||||||
|
NACOS_PORT=8848
|
||||||
|
NACOS_USERNAME=nacos
|
||||||
|
NACOS_PASSWORD=nacos
|
||||||
|
NACOS_CONSOLE_PORT=8048
|
||||||
|
|
||||||
|
# Grafana 配置
|
||||||
|
GRAFANA_PASSWORD=admin123
|
||||||
|
```
|
||||||
|
|
||||||
|
### 6.4 访问地址汇总
|
||||||
|
|
||||||
|
| 服务 | 本地开发 | Docker部署 |
|
||||||
|
|------|----------|------------|
|
||||||
|
| 管理后台 | http://localhost:3000 | http://localhost:80 |
|
||||||
|
| 移动端H5 | http://localhost:5174 | http://localhost:81 |
|
||||||
|
| API网关 | http://localhost:8000 | http://localhost:8000 |
|
||||||
|
| Nacos控制台 | http://localhost:8048/nacos | http://localhost:8848/nacos |
|
||||||
|
| Prometheus | http://localhost:9090 | http://localhost:9090 |
|
||||||
|
| Grafana | http://localhost:3001 | http://localhost:3000 |
|
||||||
|
|
||||||
|
### 6.5 默认账号
|
||||||
|
|
||||||
|
| 系统 | 用户名 | 密码 |
|
||||||
|
|------|--------|------|
|
||||||
|
| Nacos | nacos | nacos |
|
||||||
|
| Grafana | admin | admin123 |
|
||||||
|
| 管理后台 | admin | 123456 |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user