swoole 是一种常驻内存进程 Reactor 模式的框架。
支持 Swoole 的 Web 框架:
1. Laravel-Swoole https://github.com/swooletw/laravel-swoole
2. Laravel-S https://github.com/hhxsv5/laravel-s
3. Swoft https://github.com/swoft-cloud/swoft
4. Hyperf https://github.com/hyperf/hyperf
5. One https://github.com/lizhichao/one
6. EasySwoole https://github.com/easy-swoole/easyswoole
1 和 2 可以让 Swoole 支持 Laravel 框架;个人更倾向于 Hyperf;Swoft 很好,但也很重,如果要使用Swoft,不如考虑换个技术栈,比如 Java 或 Python。
优点:
1. 高性能
在 https://www.techempower.com/benchmarks/ 的测试中完胜 Node.js
2. 支持 Coroutine
Coroutine 可以将步代码转换成异步执行,而不需要通过回调,也远比 Node.js 的 async/await 优雅。
3. 支持 channel
这点已经可以媲美 golang 了。
缺点:
1. 内存泄露
通过 max_request 设置 Worker 进程的生命周期,也可以通过设置 PHP 的 memory_limit 来限制进程的内存使用,超出内存使用限制的 PHP 进程会退出,然后 Manager 进程会重新拉起一个新的 Worker 进程(Manager 进程不运行 PHP 代码,所以不会内存泄露)。
2. 代码热更新
3. 兼容性
Swoole 的运行模式并非 PHP 原生模式,所以并不能保证所有的 PHP 扩展的第三方库能够完美兼容。Swoole 支持的数据库只有 MySQL 和 Postgresql,另外缓存也仅支持 Redis,不过说实话也够用了,如果需要支持其他外部服务,完全可以通过 Agent 模式来实现。
总结
Swoole 不适合作为直接处理用户请求的 Web 框架,用来作为后端任务处理器会更加适合。总的来说,Swoole 框架目前的设计还是挺先进。想要了解更多swoole教程或相关资讯欢迎关注编程学习网
扫码二维码 获取免费视频学习资料
- 本文固定链接: http://phpxs.com/post/8140/
- 转载请注明:转载必须在正文中标注并保留原文链接
- 扫码: 扫上方二维码获取免费视频资料
查 看2022高级编程视频教程免费获取