2021
06-29

swoole框架真香推薦

swoole 是一種常駐內(nèi)存進(jìn)程 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 框架;個(gè)人更傾向于 Hyperf;Swoft 很好,但也很重,如果要使用Swoft,不如考慮換個(gè)技術(shù)棧,比如 Java 或 Python。

優(yōu)點(diǎn):

1. 高性能

在  https://www.techempower.com/benchmarks/  的測(cè)試中完勝 Node.js

2. 支持 Coroutine

Coroutine 可以將步代碼轉(zhuǎn)換成異步執(zhí)行,而不需要通過(guò)回調(diào),也遠(yuǎn)比 Node.js 的 async/await 優(yōu)雅。

3. 支持  channel 

這點(diǎn)已經(jīng)可以媲美 golang 了。

缺點(diǎn):

1. 內(nèi)存泄露

通過(guò)  max_request 設(shè)置 Worker 進(jìn)程的生命周期,也可以通過(guò)設(shè)置 PHP 的 memory_limit 來(lái)限制進(jìn)程的內(nèi)存使用,超出內(nèi)存使用限制的 PHP 進(jìn)程會(huì)退出,然后 Manager 進(jìn)程會(huì)重新拉起一個(gè)新的 Worker 進(jìn)程(Manager 進(jìn)程不運(yùn)行 PHP 代碼,所以不會(huì)內(nèi)存泄露)。

2. 代碼熱更新

3. 兼容性

Swoole 的運(yùn)行模式并非 PHP 原生模式,所以并不能保證所有的 PHP 擴(kuò)展的第三方庫(kù)能夠完美兼容。Swoole 支持的數(shù)據(jù)庫(kù)只有 MySQL 和 Postgresql,另外緩存也僅支持 Redis,不過(guò)說(shuō)實(shí)話也夠用了,如果需要支持其他外部服務(wù),完全可以通過(guò) Agent 模式來(lái)實(shí)現(xiàn)。

總結(jié)

Swoole 不適合作為直接處理用戶請(qǐng)求的 Web 框架,用來(lái)作為后端任務(wù)處理器會(huì)更加適合。總的來(lái)說(shuō),Swoole 框架目前的設(shè)計(jì)還是挺先進(jìn)。想要了解更多swoole教程或相關(guān)資訊歡迎關(guān)注編程學(xué)習(xí)網(wǎng)

掃碼二維碼 獲取免費(fèi)視頻學(xué)習(xí)資料

Python編程學(xué)習(xí)

查 看2022高級(jí)編程視頻教程免費(fèi)獲取