- 添加 Dockerfile 与多套 docker-compose 配置(开发/生产环境) - 集成 Laravel Octane (Swoole) 提升性能 - 新增健康检查、监控脚本及部署文档 - 新增 Docker 镜像离线导入包(MySQL/Redis/Meilisearch) - 优化文档转换、预览服务及队列任务 - 添加 CreateAdminUser 命令与路由健康检查接口 - 新增 Swoole 队列兼容性测试套件 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
185 lines
5.2 KiB
Markdown
185 lines
5.2 KiB
Markdown
# 实施计划 - Swoole 集成
|
|
|
|
## 概述
|
|
|
|
本实施计划将现有的 Laravel 知识库系统从 PHP-FPM + Nginx 架构迁移到基于 Swoole 的高性能架构。采用最小化代码修改的策略,主要通过安装 Laravel Octane 包和更新配置来实现。
|
|
|
|
## 任务列表
|
|
|
|
- [x] 1. 安装和配置 Laravel Octane
|
|
- 安装 laravel/octane 包
|
|
- 发布 Octane 配置文件
|
|
- 配置 Swoole 相关环境变量
|
|
- _需求: 1.1, 2.1_
|
|
|
|
- [ ]* 1.1 编写 Octane 启动测试
|
|
- **属性 1: Swoole 服务器启动一致性**
|
|
- **验证: 需求 1.1**
|
|
|
|
- [ ]* 1.2 编写命令行接口测试
|
|
- **属性 4: Artisan 命令执行一致性**
|
|
- **验证: 需求 2.1, 2.4, 2.5**
|
|
|
|
- [x] 2. 更新 Composer 依赖
|
|
- 添加 laravel/octane 到 composer.json
|
|
- 安装 Swoole PHP 扩展依赖
|
|
- 更新 composer 脚本以支持 Swoole 启动
|
|
- _需求: 1.1, 2.1_
|
|
|
|
- [ ]* 2.1 编写依赖安装验证测试
|
|
- **属性 7: Swoole 扩展安装完整性**
|
|
- **验证: 需求 3.1**
|
|
|
|
- [ ] 3. 更新 Docker 配置
|
|
- 修改 Dockerfile 安装 Swoole 扩展
|
|
- 移除 Nginx 和 PHP-FPM 相关配置
|
|
- 更新容器启动命令使用 Octane
|
|
- 调整端口映射配置
|
|
- _需求: 3.1, 3.2, 3.3_
|
|
|
|
- [ ]* 3.1 编写 Docker 镜像验证测试
|
|
- **属性 8: 容器进程替换正确性**
|
|
- **验证: 需求 3.2**
|
|
|
|
- [ ]* 3.2 编写端口配置测试
|
|
- **属性 5: 端口配置正确性**
|
|
- **属性 9: 容器端口暴露正确性**
|
|
- **验证: 需求 2.2, 3.3**
|
|
|
|
- [x] 4. 更新 docker-compose.yml
|
|
- 移除 Nginx 服务配置
|
|
- 更新应用服务使用 Swoole 端口
|
|
- 调整服务依赖关系
|
|
- 更新健康检查配置
|
|
- _需求: 3.2, 6.2_
|
|
|
|
- [ ]* 4.1 编写 docker-compose 配置验证测试
|
|
- **属性 17: 配置文件更新正确性**
|
|
- **验证: 需求 6.2**
|
|
|
|
- [x] 5. 配置环境变量
|
|
- 更新 .env 文件添加 Octane 配置
|
|
- 设置 Swoole 工作进程数量
|
|
- 配置最大请求数和其他性能参数
|
|
- _需求: 1.4, 2.2, 2.3, 6.3_
|
|
|
|
- [ ]* 5.1 编写环境变量配置测试
|
|
- **属性 6: 工作进程数量一致性**
|
|
- **属性 18: 环境变量配置生效性**
|
|
- **验证: 需求 2.3, 6.3**
|
|
|
|
- [x] 6. 验证队列系统兼容性
|
|
- 测试现有队列任务在 Swoole 环境下的运行
|
|
- 验证文档转换队列功能
|
|
- 确认队列监听器自动启动
|
|
- _需求: 4.1, 4.2, 4.3_
|
|
|
|
- [ ]* 6.1 编写队列兼容性测试
|
|
- **属性 10: 队列处理兼容性**
|
|
- **属性 11: 队列监听器自动启动**
|
|
- **验证: 需求 4.1, 4.2, 4.3**
|
|
|
|
- [ ]* 6.2 编写队列错误处理测试
|
|
- **属性 12: 队列错误处理一致性**
|
|
- **验证: 需求 4.4**
|
|
|
|
- [ ] 7. 更新部署脚本
|
|
- 修改 Docker 镜像构建脚本
|
|
- 更新部署验证脚本
|
|
- 调整健康检查脚本
|
|
- _需求: 6.1, 6.4_
|
|
|
|
- [ ]* 7.1 编写部署脚本验证测试
|
|
- **属性 16: 部署脚本镜像构建正确性**
|
|
- **验证: 需求 6.1**
|
|
|
|
- [ ] 8. 第一次检查点 - 确保所有测试通过
|
|
- 确保所有测试通过,如有问题请询问用户
|
|
|
|
- [ ] 9. 性能和稳定性测试
|
|
- 配置负载测试环境
|
|
- 执行并发请求测试
|
|
- 监控内存使用情况
|
|
- 验证长时间运行稳定性
|
|
- _需求: 5.1, 5.2_
|
|
|
|
- [ ]* 9.1 编写性能测试
|
|
- **属性 13: 高并发处理稳定性**
|
|
- **属性 14: 内存使用稳定性**
|
|
- **验证: 需求 5.1, 5.2**
|
|
|
|
- [ ] 10. 健康检查和监控
|
|
- 实现 Swoole 服务健康检查接口
|
|
- 配置系统监控和告警
|
|
- 验证错误日志记录功能
|
|
- _需求: 5.3, 5.4_
|
|
|
|
- [ ]* 10.1 编写健康检查测试
|
|
- **属性 15: 健康检查响应一致性**
|
|
- **验证: 需求 5.4**
|
|
|
|
- [ ] 11. 文档更新
|
|
- 更新部署指南
|
|
- 更新运维文档
|
|
- 创建 Swoole 配置说明
|
|
- _需求: 6.4_
|
|
|
|
- [ ] 12. 回滚机制准备
|
|
- 准备回滚到原架构的脚本
|
|
- 测试回滚流程
|
|
- 文档化回滚步骤
|
|
- _需求: 6.5_
|
|
|
|
- [ ]* 12.1 编写回滚功能测试
|
|
- 验证回滚机制的正确性
|
|
- _需求: 6.5_
|
|
|
|
- [ ] 13. 最终检查点 - 确保所有测试通过
|
|
- 确保所有测试通过,如有问题请询问用户
|
|
|
|
## 实施注意事项
|
|
|
|
### 最小化代码修改原则
|
|
|
|
1. **保持现有代码不变**: 所有 Controllers、Models、Services 保持原样
|
|
2. **利用 Laravel Octane 默认配置**: 避免自定义复杂的配置逻辑
|
|
3. **渐进式迁移**: 先在开发环境验证,再部署到生产环境
|
|
4. **保留回滚能力**: 确保可以快速回退到原有架构
|
|
|
|
### 关键配置参数
|
|
|
|
```bash
|
|
# 核心 Swoole 配置
|
|
OCTANE_SERVER=swoole
|
|
OCTANE_HOST=0.0.0.0
|
|
OCTANE_PORT=8000
|
|
OCTANE_WORKERS=4
|
|
OCTANE_TASK_WORKERS=2
|
|
OCTANE_MAX_REQUESTS=500
|
|
```
|
|
|
|
### 验证检查清单
|
|
|
|
- [ ] Swoole 扩展正确安装
|
|
- [ ] Octane 命令正常工作
|
|
- [ ] HTTP 请求正确处理
|
|
- [ ] 队列任务正常执行
|
|
- [ ] 数据库连接稳定
|
|
- [ ] 缓存系统正常
|
|
- [ ] 搜索功能可用
|
|
- [ ] 文件上传下载正常
|
|
- [ ] 性能指标符合预期
|
|
|
|
### 性能预期
|
|
|
|
- **响应时间**: 比原架构提升 30-50%
|
|
- **并发处理**: 支持更高的并发连接数
|
|
- **内存使用**: 更高效的内存利用
|
|
- **CPU 使用**: 更好的 CPU 利用率
|
|
|
|
### 风险缓解
|
|
|
|
1. **充分测试**: 在开发环境完整测试所有功能
|
|
2. **分阶段部署**: 先部署到测试环境,再到生产环境
|
|
3. **监控告警**: 部署后密切监控系统指标
|
|
4. **快速回滚**: 准备好快速回滚方案 |