溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Workman和swoole有哪些區(qū)別

發(fā)布時(shí)間:2021-01-18 14:39:32 來源:億速云 閱讀:249 作者:小新 欄目:編程語言

這篇文章主要介紹Workman和swoole有哪些區(qū)別,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

workerman

workerman是一個(gè)高性能的PHP socket 服務(wù)器框架,workerman基于PHP多進(jìn)程以及l(fā)ibevent事件輪詢庫,PHP開發(fā)者只要實(shí)現(xiàn)一兩個(gè)接口,便可以開發(fā)出自己的網(wǎng)絡(luò)應(yīng)用,例如Rpc服務(wù)、聊天室服務(wù)器、手機(jī)游戲服務(wù)器等。

workerman的目標(biāo)是讓PHP開發(fā)者更容易的開發(fā)出基于socket的高性能的應(yīng)用服務(wù),而不用去了解PHP socket以及PHP多進(jìn)程細(xì)節(jié)。 workerman本身是一個(gè)PHP多進(jìn)程服務(wù)器框架,具有PHP進(jìn)程管理以及socket通信的模塊,所以不依賴php-fpm、nginx或者apache等這些容器便可以獨(dú)立運(yùn)行

其中

workerman有兩種進(jìn)程模型

1、基本的master worker模型

2、master gateway worker模型

master worker模型工作流程及進(jìn)程間關(guān)系如下:

Workman和swoole有哪些區(qū)別

master worker模型說明:

master進(jìn)程為主進(jìn)程,啟動過程中讀取conf配置,根據(jù)每個(gè)應(yīng)用配置中的ip和端口創(chuàng)建監(jiān)聽socket,然后再根據(jù)配置中的進(jìn)程數(shù)創(chuàng)建對應(yīng)數(shù)量的子進(jìn)程即worker進(jìn)程,worker進(jìn)程會自動繼承master進(jìn)程創(chuàng)建的監(jiān)聽socket,使得worker進(jìn)程能夠獨(dú)立的接受并處理客戶端的連接。而后master進(jìn)程進(jìn)入監(jiān)聽信號的邏輯中,監(jiān)聽worker進(jìn)程退出信號(worker進(jìn)程退出后,系統(tǒng)會自動向master進(jìn)程發(fā)送一個(gè)SIGHCLD信號,mater進(jìn)程會重新創(chuàng)建子進(jìn)程,將缺失的子進(jìn)程補(bǔ)上),master進(jìn)程還會監(jiān)聽workermand腳本發(fā)來的停止信號(SIGINT)和平滑重啟服務(wù)信號(SIGHUP)

worker進(jìn)程為master進(jìn)程派生出來的子進(jìn)程,自動繼承了master進(jìn)程的監(jiān)聽socket,每個(gè)worker進(jìn)程獨(dú)立的接受并處理客戶端的連接。

master worker模型比較適合業(yè)務(wù)簡單的應(yīng)用或者短連接應(yīng)用

master gateway worker模型工作流程和進(jìn)程間關(guān)系如下:

Workman和swoole有哪些區(qū)別

master gateway worker 模型說明:

這種模型多了一個(gè)gateway進(jìn)程組,工作流程與master worker模型基本相同,區(qū)別是worker進(jìn)程不再直接與客戶端打交道,客戶端與worker進(jìn)程之間多了一個(gè)gateway進(jìn)程,gateway專職處理網(wǎng)絡(luò)IO,并維護(hù)客戶端的長連接。

master gateway worker 模型非常適合長連接應(yīng)用

swoole

Swoole是一個(gè)面向生產(chǎn)環(huán)境的 PHP 異步網(wǎng)絡(luò)通信引擎,使 PHP 開發(fā)人員可以編寫高性能的異步并發(fā) TCP、UDP、Unix Socket、HTTP,WebSocket 服務(wù)。Swoole 可以廣泛應(yīng)用于互聯(lián)網(wǎng)、移動通信、企業(yè)軟件、云計(jì)算、網(wǎng)絡(luò)游戲、物聯(lián)網(wǎng)(IOT)、車聯(lián)網(wǎng)、智能家居等領(lǐng)域。 使用 PHP + Swoole 作為網(wǎng)絡(luò)通信框架,可以使企業(yè) IT 研發(fā)團(tuán)隊(duì)的效率大大提升。

Swoole不是一個(gè)像Zend Framework、CakePHP、Yii、symfony、ThinkPHP等一樣的框架,也不是一個(gè)像WordPress、Drupal、Discuz、UChome等開源產(chǎn)品看齊的項(xiàng)目。 Swoole的目標(biāo)是向Java框架、Ruby On Rails、Python DjangoPylons等一流框架發(fā)起挑戰(zhàn)。

Swoole雖然是標(biāo)準(zhǔn)的PHP擴(kuò)展,實(shí)際上與普通的擴(kuò)展不同。普通的擴(kuò)展只是提供一個(gè)庫函數(shù)。而Swoole擴(kuò)展在運(yùn)行后會接管PHP的控制權(quán),進(jìn)入事件循環(huán)。當(dāng)IO事件發(fā)生后底層會自動回調(diào)指定的PHP函數(shù)。

swoole 底層是純c 編寫,對其他擴(kuò)展幾乎是零依賴,不需要php傳統(tǒng)環(huán)境做依賴。性能更加強(qiáng)悍,許多國內(nèi)外大公司都會在swoole的基礎(chǔ)上進(jìn)行二開來滿足自己的業(yè)務(wù)需求。

以上是“Workman和swoole有哪些區(qū)別”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI