Swoole 是一款面向 PHP 的高性能协程与网络通信引擎,以 C/C++ 编写并作为 PHP 扩展运行,为 PHP 带来常驻内存、异步 IO 与协程能力,使其能够编写高并发的服务端程序,是国产开源软件的代表之一。

| 类型 | PHP 协程/网络引擎 |
| 实现 | C/C++ 扩展 |
| 模型 | 协程 + 事件驱动 |
| 起源 | 中国开源项目 |
| 许可协议 | Apache 2.0 |
Swoole 是一个开源的 PHP 高性能网络通信与协程引擎,以 C/C++ 编写并作为 PHP 扩展加载。它突破了传统 PHP-FPM 每请求启停的模式,为 PHP 引入常驻内存、异步 IO、协程与多进程等能力,让 PHP 也能编写长期运行的高并发服务端程序。
Swoole 由 韩天峰(Rango) 等中国开发者发起,是国内颇具影响力的开源项目。传统 PHP 通常运行在 Web 服务器加 PHP-FPM 之下,进程随请求创建与销毁,难以维持连接状态或做高并发长连接。Swoole 则以事件驱动与协程模型工作:程序启动后常驻内存,通过协程调度在遇到 IO 阻塞时自动切换任务,从而以少量线程支撑大量并发连接,同时保持同步风格的代码书写方式。
Swoole 广泛用于实时通信、即时通讯、游戏服务器、微服务与高并发 API 等 PHP 传统架构难以胜任的场景。许多现代 PHP 框架(如 Hyperf、Laravel Octane)也以 Swoole 作为运行时,借其常驻内存与协程能力大幅提升性能。
问:用了 Swoole 还需要 Nginx 和 PHP-FPM 吗?答:Swoole 自带 HTTP/WebSocket 服务器,可直接对外提供服务,不再依赖 PHP-FPM;实际部署中通常仍在前面放 Nginx 做反向代理、负载均衡与静态资源处理。
问:常驻内存模式需要注意什么?答:由于进程长期存活,全局变量与单例状态不会像 FPM 那样每次重置,容易产生内存泄漏或状态污染,编码时需谨慎管理生命周期,避免在请求间共享可变状态。

| 类型 | PHP 协程/网络引擎 |
| 实现 | C/C++ 扩展 |
| 模型 | 协程 + 事件驱动 |
| 起源 | 中国开源项目 |
| 许可协议 | Apache 2.0 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧