feat(admin): 添加用户管理相关文件
添加用户管理视图、API和状态管理文件
This commit is contained in:
@@ -0,0 +1,184 @@
|
||||
# 性能测试和优化建议
|
||||
|
||||
## 性能测试方案
|
||||
|
||||
### 1. 测试工具
|
||||
- **JMeter**: 用于压力测试和负载测试
|
||||
- **Gatling**: 用于高级性能测试和场景模拟
|
||||
- **wrk**: 用于简单的 HTTP 基准测试
|
||||
|
||||
### 2. 测试场景
|
||||
|
||||
#### 2.1 客户端应用性能测试
|
||||
- **用户登录**: 测试登录接口的并发处理能力
|
||||
- **用户注册**: 测试注册接口的并发处理能力
|
||||
- **命理查询**: 测试命理查询接口的响应时间
|
||||
- **批量查询**: 测试批量命理查询的性能
|
||||
|
||||
#### 2.2 后台管理应用性能测试
|
||||
- **用户列表**: 测试用户列表查询性能
|
||||
- **统计数据**: 测试统计数据查询性能
|
||||
- **权限验证**: 测试 RBAC 权限验证性能
|
||||
|
||||
#### 2.3 网关性能测试
|
||||
- **路由转发**: 测试网关路由转发性能
|
||||
- **JWT 验证**: 测试 JWT 认证过滤器性能
|
||||
- **RBAC 验证**: 测试 RBAC 权限过滤器性能
|
||||
|
||||
### 3. 性能指标
|
||||
|
||||
| 指标 | 目标值 | 说明 |
|
||||
|------|---------|------|
|
||||
| 响应时间 (P95) | < 200ms | 95% 的请求响应时间 |
|
||||
| 响应时间 (P99) | < 500ms | 99% 的请求响应时间 |
|
||||
| 吞吐量 | > 1000 TPS | 每秒处理事务数 |
|
||||
| 错误率 | < 0.1% | 请求错误率 |
|
||||
| CPU 使用率 | < 70% | CPU 使用率 |
|
||||
| 内存使用率 | < 80% | 内存使用率 |
|
||||
|
||||
## 性能优化建议
|
||||
|
||||
### 1. JVM 优化
|
||||
|
||||
#### 1.1 堆内存配置
|
||||
```bash
|
||||
-Xms512m -Xmx1024m
|
||||
```
|
||||
|
||||
#### 1.2 GC 策略
|
||||
```bash
|
||||
-XX:+UseG1GC -XX:MaxGCPauseMillis=200
|
||||
```
|
||||
|
||||
#### 1.3 其他 JVM 参数
|
||||
```bash
|
||||
-XX:+UseStringDeduplication
|
||||
-XX:+OptimizeStringConcat
|
||||
-XX:+UseCompressedOops
|
||||
```
|
||||
|
||||
### 2. 数据库优化
|
||||
|
||||
#### 2.1 连接池配置
|
||||
```yaml
|
||||
spring:
|
||||
r2dbc:
|
||||
pool:
|
||||
initial-size: 10
|
||||
max-size: 50
|
||||
max-idle-time: 30s
|
||||
max-life-time: 60s
|
||||
```
|
||||
|
||||
#### 2.2 查询优化
|
||||
- 为常用查询字段添加索引
|
||||
- 使用分页查询避免全表扫描
|
||||
- 使用 R2DBC 的非阻塞特性
|
||||
|
||||
### 3. 缓存优化
|
||||
|
||||
#### 3.1 Caffeine 缓存配置
|
||||
```yaml
|
||||
spring:
|
||||
cache:
|
||||
type: caffeine
|
||||
caffeine:
|
||||
spec: maximumSize=1000,expireAfterWrite=5m,recordStats
|
||||
```
|
||||
|
||||
#### 3.2 缓存策略
|
||||
- **用户信息**: 缓存 5 分钟
|
||||
- **命理结果**: 缓存 10 分钟
|
||||
- **统计数据**: 缓存 1 分钟
|
||||
|
||||
### 4. 响应式优化
|
||||
|
||||
#### 4.1 非阻塞 I/O
|
||||
- 使用 WebFlux 的非阻塞特性
|
||||
- 使用 R2DBC 的响应式数据库访问
|
||||
- 避免在响应式流中使用阻塞操作
|
||||
|
||||
#### 4.2 背压处理
|
||||
```java
|
||||
public Mono<ServerResponse> handleRequest(ServerRequest request) {
|
||||
return request.bodyToMono(Request.class)
|
||||
.flatMap(this::processRequest)
|
||||
.onBackpressureBuffer(1000)
|
||||
.map(this::toResponse);
|
||||
}
|
||||
```
|
||||
|
||||
### 5. 网关优化
|
||||
|
||||
#### 5.1 连接池配置
|
||||
```yaml
|
||||
spring:
|
||||
cloud:
|
||||
gateway:
|
||||
httpclient:
|
||||
connect-timeout: 5000
|
||||
response-timeout: 30s
|
||||
pool:
|
||||
max-connections: 500
|
||||
max-idle-time: 30s
|
||||
```
|
||||
|
||||
#### 5.2 路由优化
|
||||
- 使用路径前缀匹配
|
||||
- 避免复杂的正则表达式
|
||||
- 使用缓存路由信息
|
||||
|
||||
### 6. 监控和告警
|
||||
|
||||
#### 6.1 Actuator 端点
|
||||
- `/actuator/health`: 健康检查
|
||||
- `/actuator/metrics`: 性能指标
|
||||
- `/actuator/prometheus`: Prometheus 指标
|
||||
|
||||
#### 6.2 关键指标
|
||||
- **jvm.memory.used**: JVM 内存使用
|
||||
- **http.server.requests**: HTTP 请求指标
|
||||
- **cache.size**: 缓存大小
|
||||
- **cache.puts**: 缓存写入次数
|
||||
- **cache.hits**: 缓存命中次数
|
||||
|
||||
#### 6.3 告警规则
|
||||
- CPU 使用率 > 80%
|
||||
- 内存使用率 > 90%
|
||||
- 响应时间 P95 > 500ms
|
||||
- 错误率 > 1%
|
||||
|
||||
## 性能测试脚本示例
|
||||
|
||||
### JMeter 测试计划
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<jmeterTestPlan version="1.2">
|
||||
<hashTree>
|
||||
<TestPlan>
|
||||
<stringProp name="TestPlan.comments">性能测试计划</stringProp>
|
||||
<boolProp name="TestPlan.functional_mode">false</boolProp>
|
||||
<elementProp name="TestPlan.user_defined_variables">
|
||||
<collectionProp name="Arguments.arguments"/>
|
||||
</elementProp>
|
||||
</TestPlan>
|
||||
</hashTree>
|
||||
</jmeterTestPlan>
|
||||
```
|
||||
|
||||
### wrk 测试命令
|
||||
```bash
|
||||
wrk -t12 -c400 -d30s http://localhost:8080/api/fortune/daily
|
||||
```
|
||||
|
||||
## 性能优化检查清单
|
||||
|
||||
- [ ] JVM 参数已优化
|
||||
- [ ] 数据库连接池已配置
|
||||
- [ ] 缓存策略已实施
|
||||
- [ ] 响应式编程最佳实践已应用
|
||||
- [ ] 网关连接池已优化
|
||||
- [ ] 监控和告警已配置
|
||||
- [ ] 性能测试已完成
|
||||
- [ ] 瓶颈已识别并优化
|
||||
- [ ] 性能指标已达标
|
||||
Reference in New Issue
Block a user