新聞中心
這篇文章主要介紹了WorkerMan的特性有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
WorkerMan的特性介紹:
1、純PHP開發(fā)
使用WorkerMan開發(fā)的應(yīng)用程序不依賴php-fpm、apache、nginx這些容器就可以獨(dú)立運(yùn)行。 這使得PHP開發(fā)者開發(fā)、部署、調(diào)試應(yīng)用程序非常方便。
2、支持PHP多進(jìn)程
為了充分發(fā)揮服務(wù)器多CPU的性能,WorkerMan默認(rèn)支持多進(jìn)程多任務(wù)。WorkerMan開啟一個主進(jìn)程和多個子進(jìn)程對外提供服務(wù), 主進(jìn)程負(fù)責(zé)監(jiān)控子進(jìn)程,子進(jìn)程獨(dú)自監(jiān)聽網(wǎng)絡(luò)連接并接收發(fā)送及處理數(shù)據(jù),由于進(jìn)程模型簡單,使得WorkerMan更加穩(wěn)定,更加高效。
3、支持TCP、UDP
WorkerMan支持TCP和UDP兩種傳**傳輸協(xié)議**,只需要更改一個屬性便可以更換傳輸層協(xié)議,業(yè)務(wù)代碼無需改動。
4、支持長連接
很多時候需要PHP應(yīng)用程序要與客戶端保持長連接,比如聊天室、游戲等,但是傳統(tǒng)的PHP容器(apache、nginx、php-fpm)很難做到這一點。
使用WorkerMan,只要服務(wù)端業(yè)務(wù)不主動調(diào)用關(guān)閉連接接口,便可以使用PHP長連接。WorkerMan單個進(jìn)程可以支持上萬的并發(fā)連接,多進(jìn)程則支持?jǐn)?shù)十萬的甚至百萬并發(fā)連接。
5、支持各種應(yīng)用層協(xié)議
WorkerMan接口上支持各種應(yīng)用層協(xié)議,包括自定義協(xié)議。在WorkerMan中更換協(xié)議同樣非常簡單,同樣只是配置一個字段,協(xié)議自動切換,業(yè)務(wù)代碼零改動,甚至可以開啟多個不同協(xié)議的端口,滿足不同的客戶端需求。
6、支持高并發(fā)、
WorkerMan支持Libevent事件輪詢庫(需要安裝Libevent擴(kuò)展), 使用Libevent在高并發(fā)時性能非常卓越,如果沒有安裝Libevent則使用PHP內(nèi)置的Select相關(guān)系統(tǒng)調(diào)用,性能也同樣非常強(qiáng)悍。
7、支持服務(wù)平滑重啟
當(dāng)需要重啟服務(wù)時(例如發(fā)布版本),我們不希望正在處理用戶請求的進(jìn)程被立刻終止,更不希望重啟的那一刻導(dǎo)致客戶端通訊失敗。
WorkerMan提供了平滑重啟功能,能夠保障服務(wù)平滑升級,不影響客戶端的使用。
8、支持文件更新檢測及自動加載
在開發(fā)過程中,我們希望在我們改動代碼后能夠立刻生效,以便查看結(jié)果。WorkerMan提供了FileMonitor文件監(jiān)控組件,只要文件有更新,WorkerMan會自動運(yùn)行reload,以便加載新的文件,使之生效。
9、支持以指定用戶運(yùn)行子進(jìn)程
因為子進(jìn)程是實際處理用戶請求的進(jìn)程,為了安全考慮,子進(jìn)程不能有太高的權(quán)限,所以WorkerMan支持設(shè)置子運(yùn)行進(jìn)程運(yùn)行的用戶,使你的服務(wù)器更加安全。
10、支持對象或者資源永久保持
WorkerMan在運(yùn)行過程中只會載入解析一次PHP文件,然后便常駐內(nèi)存,這使得類及函數(shù)聲明、PHP執(zhí)行環(huán)境、符號表等不會重復(fù)創(chuàng)建銷毀,這與Web容器下運(yùn)行的PHP機(jī)制是完全不同的。
在WorkerMan中,一個進(jìn)程生命周期內(nèi)靜態(tài)成員或者全局變量在不主動銷毀的情況下是永久保持的,也就是將對象或者連接等資源放到全局變量或者類靜態(tài)成員中則當(dāng)前進(jìn)程的整個生命周期內(nèi)的所有請求都可以復(fù)用。
例如只要單個進(jìn)程內(nèi)初始化一次數(shù)據(jù)庫連接,則以后這個進(jìn)程的所有請求都可以復(fù)用這個數(shù)據(jù)庫連接,避免了頻繁連接數(shù)據(jù)庫過程中TCP三次握手、 數(shù)據(jù)庫權(quán)限驗證、斷開連接時TCP四次握手的過程,極大的提高了應(yīng)用程序效率。
11、高性能
由于php文件從磁盤讀取解析一次后便會常駐內(nèi)存,下次使用時直接使用內(nèi)存中的opcode, 極大的減少了磁盤IO及PHP中請求初始化、創(chuàng)建執(zhí)行環(huán)境、詞法解析、語法解析、編譯opcode、請求關(guān)閉等諸多耗時過程, 并且不依賴nginx、apache等容器,少了nginx等容器與PHP通信的開銷,最主要的是資源可以永久保持,不必每次初始化數(shù)據(jù)庫連接等等, 所以使用WorkerMan開發(fā)應(yīng)用程序,性能非常高。
12、支持HHVM
支持在HHVM虛擬機(jī)上運(yùn)行,可成倍提升PHP性能。尤其是在cpu密集運(yùn)算業(yè)務(wù)中,性能非常優(yōu)異。通過實際壓力測試對比,在沒有負(fù)載業(yè)務(wù)的情況下,WorkerMan在HHVM下運(yùn)行比在Zend PHP5.6運(yùn)行網(wǎng)絡(luò)吞吐量提高了30-80%左右
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“WorkerMan的特性有哪些”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!
文章名稱:WorkerMan的特性有哪些-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://www.dlmjj.cn/article/cchcii.html