- 添加 Dockerfile 与多套 docker-compose 配置(开发/生产环境) - 集成 Laravel Octane (Swoole) 提升性能 - 新增健康检查、监控脚本及部署文档 - 新增 Docker 镜像离线导入包(MySQL/Redis/Meilisearch) - 优化文档转换、预览服务及队列任务 - 添加 CreateAdminUser 命令与路由健康检查接口 - 新增 Swoole 队列兼容性测试套件 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3.9 KiB
3.9 KiB
需求文档 - Swoole 集成
介绍
本规范旨在将现有的 Laravel 知识库系统从传统的 PHP-FPM + Nginx 架构迁移到使用 Swoole 的高性能异步架构。Swoole 是一个高性能的 PHP 异步网络通信引擎,能够显著提升应用性能和并发处理能力。
术语表
- Swoole: 高性能的 PHP 异步网络通信引擎
- Laravel_Octane: Laravel 官方的高性能应用服务器包,支持 Swoole 和 RoadRunner
- PHP_Artisan: Laravel 的命令行工具
- Docker_Container: 应用程序的容器化运行环境
- Hot_Reload: 代码变更时自动重启服务的功能
需求
需求 1
用户故事: 作为系统管理员,我希望使用 Swoole 替代传统的 PHP-FPM 运行方式,以便获得更高的性能和并发处理能力。
验收标准
- WHEN 系统启动时 THEN Laravel_Octane SHALL 使用 Swoole 驱动启动 HTTP 服务器
- WHEN 接收 HTTP 请求时 THEN Swoole_Server SHALL 处理请求并返回响应
- WHEN 系统运行时 THEN Swoole_Server SHALL 维持长连接和内存驻留
- WHEN 配置变更时 THEN 系统 SHALL 支持热重载功能
- WHEN 监控系统性能时 THEN Swoole_Server SHALL 提供性能指标接口
需求 2
用户故事: 作为开发人员,我希望通过 php artisan 命令启动 Swoole 服务,以便保持与 Laravel 生态系统的一致性。
验收标准
- WHEN 执行启动命令时 THEN php artisan octane:start SHALL 启动 Swoole 服务器
- WHEN 指定端口参数时 THEN 系统 SHALL 在指定端口上启动服务
- WHEN 指定工作进程数时 THEN Swoole_Server SHALL 创建指定数量的工作进程
- WHEN 执行停止命令时 THEN php artisan octane:stop SHALL 优雅关闭服务器
- WHEN 执行重启命令时 THEN php artisan octane:restart SHALL 重启服务器
需求 3
用户故事: 作为运维人员,我希望更新 Docker 镜像配置,以便支持 Swoole 运行环境和相关依赖。
验收标准
- WHEN 构建 Docker 镜像时 THEN 系统 SHALL 安装 Swoole PHP 扩展
- WHEN 容器启动时 THEN 系统 SHALL 使用 Swoole 替代 PHP-FPM 和 Nginx
- WHEN 配置容器时 THEN 系统 SHALL 暴露 Swoole 服务端口
- WHEN 容器运行时 THEN 系统 SHALL 支持进程管理和监控
- WHEN 容器重启时 THEN 系统 SHALL 自动恢复 Swoole 服务
需求 4
用户故事: 作为系统架构师,我希望保持现有的队列处理和后台任务功能,以便确保系统功能完整性。
验收标准
- WHEN Swoole 服务运行时 THEN 队列处理器 SHALL 继续正常工作
- WHEN 处理文档转换任务时 THEN 后台队列 SHALL 正常执行任务
- WHEN 系统启动时 THEN 队列监听器 SHALL 自动启动
- WHEN 队列任务失败时 THEN 系统 SHALL 记录错误并支持重试
- WHEN 监控队列状态时 THEN 系统 SHALL 提供队列健康检查接口
需求 5
用户故事: 作为质量保证工程师,我希望验证 Swoole 集成后的系统稳定性,以便确保生产环境的可靠性。
验收标准
- WHEN 系统负载测试时 THEN Swoole_Server SHALL 处理高并发请求而不崩溃
- WHEN 长时间运行时 THEN 系统 SHALL 保持内存使用稳定
- WHEN 发生异常时 THEN Swoole_Server SHALL 记录详细错误日志
- WHEN 进行健康检查时 THEN 系统 SHALL 响应健康检查请求
- WHEN 系统重启时 THEN 所有服务 SHALL 在合理时间内恢复正常
需求 6
用户故事: 作为部署工程师,我希望更新部署脚本和配置,以便支持新的 Swoole 架构部署。
验收标准
- WHEN 执行部署脚本时 THEN 系统 SHALL 构建包含 Swoole 的新镜像
- WHEN 更新 docker-compose 配置时 THEN 系统 SHALL 移除 Nginx 容器依赖
- WHEN 配置环境变量时 THEN 系统 SHALL 支持 Swoole 相关配置参数
- WHEN 验证部署时 THEN 系统 SHALL 确认 Swoole 服务正常运行
- WHEN 回滚部署时 THEN 系统 SHALL 支持回退到之前的架构