Files
KnowledgeBase/.kiro/specs/swoole-integration/tasks.md
lizhuoran 3c206e9e06 feat: 新增 Docker 部署支持、Swoole/Octane 集成及相关优化
- 添加 Dockerfile 与多套 docker-compose 配置(开发/生产环境)
- 集成 Laravel Octane (Swoole) 提升性能
- 新增健康检查、监控脚本及部署文档
- 新增 Docker 镜像离线导入包(MySQL/Redis/Meilisearch)
- 优化文档转换、预览服务及队列任务
- 添加 CreateAdminUser 命令与路由健康检查接口
- 新增 Swoole 队列兼容性测试套件

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 15:51:19 +08:00

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. 最终检查点 - 确保所有测试通过

    • 确保所有测试通过,如有问题请询问用户

实施注意事项

最小化代码修改原则

  1. 保持现有代码不变: 所有 Controllers、Models、Services 保持原样
  2. 利用 Laravel Octane 默认配置: 避免自定义复杂的配置逻辑
  3. 渐进式迁移: 先在开发环境验证,再部署到生产环境
  4. 保留回滚能力: 确保可以快速回退到原有架构

关键配置参数

# 核心 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. 快速回滚: 准备好快速回滚方案