- 添加 Dockerfile 与多套 docker-compose 配置(开发/生产环境) - 集成 Laravel Octane (Swoole) 提升性能 - 新增健康检查、监控脚本及部署文档 - 新增 Docker 镜像离线导入包(MySQL/Redis/Meilisearch) - 优化文档转换、预览服务及队列任务 - 添加 CreateAdminUser 命令与路由健康检查接口 - 新增 Swoole 队列兼容性测试套件 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5.2 KiB
5.2 KiB
实施计划 - Swoole 集成
概述
本实施计划将现有的 Laravel 知识库系统从 PHP-FPM + Nginx 架构迁移到基于 Swoole 的高性能架构。采用最小化代码修改的策略,主要通过安装 Laravel Octane 包和更新配置来实现。
任务列表
-
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
-
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
-
4. 更新 docker-compose.yml
- 移除 Nginx 服务配置
- 更新应用服务使用 Swoole 端口
- 调整服务依赖关系
- 更新健康检查配置
- 需求: 3.2, 6.2
-
* 4.1 编写 docker-compose 配置验证测试
- 属性 17: 配置文件更新正确性
- 验证: 需求 6.2
-
5. 配置环境变量
- 更新 .env 文件添加 Octane 配置
- 设置 Swoole 工作进程数量
- 配置最大请求数和其他性能参数
- 需求: 1.4, 2.2, 2.3, 6.3
-
* 5.1 编写环境变量配置测试
- 属性 6: 工作进程数量一致性
- 属性 18: 环境变量配置生效性
- 验证: 需求 2.3, 6.3
-
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. 最终检查点 - 确保所有测试通过
- 确保所有测试通过,如有问题请询问用户
实施注意事项
最小化代码修改原则
- 保持现有代码不变: 所有 Controllers、Models、Services 保持原样
- 利用 Laravel Octane 默认配置: 避免自定义复杂的配置逻辑
- 渐进式迁移: 先在开发环境验证,再部署到生产环境
- 保留回滚能力: 确保可以快速回退到原有架构
关键配置参数
# 核心 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 利用率
风险缓解
- 充分测试: 在开发环境完整测试所有功能
- 分阶段部署: 先部署到测试环境,再到生产环境
- 监控告警: 部署后密切监控系统指标
- 快速回滚: 准备好快速回滚方案