這篇文章主要介紹workerman怎么樣,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)建站主營忻州網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都app軟件開發(fā),忻州h5微信小程序定制開發(fā)搭建,忻州網(wǎng)站營銷推廣歡迎忻州等地區(qū)企業(yè)咨詢
Workerman是一款純PHP開發(fā)的開源高性能的PHP socket 服務(wù)框架。
實(shí)際上Workerman類似一個(gè)PHP版本的nginx,核心也是多進(jìn)程+Epoll+非阻塞IO。Workerman每個(gè)進(jìn)程能維持上萬并發(fā)連接。由于本身常住內(nèi)存,不依賴Apache、nginx、php-fpm這些容器,擁有超高的性能。
同時(shí)支持TCP、UDP、UNIXSOCKET,支持長連接,支持Websocket、HTTP、WSS、HTTPS等通訊協(xié)以及各種自定義協(xié)議。擁有定時(shí)器、異步socket客戶端、異步MySQL、異步redis、異步Http、異步消息隊(duì)列等眾多高性能組件。
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開啟一個(gè)主進(jìn)程和多個(gè)子進(jìn)程對(duì)外提供服務(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é)議,只需要更改一個(gè)屬性便可以更換傳輸層協(xié)議,業(yè)務(wù)代碼無需改動(dòng)。
4、支持長連接
很多時(shí)候需要PHP應(yīng)用程序要與客戶端保持長連接,比如聊天室、游戲等,但是傳統(tǒng)的PHP容器(apache、nginx、php-fpm)很難做到這一點(diǎn)。
使用WorkerMan,只要服務(wù)端業(yè)務(wù)不主動(dòng)調(diào)用關(guān)閉連接接口,便可以使用PHP長連接。WorkerMan單個(gè)進(jìn)程可以支持上萬的并發(fā)連接,多進(jìn)程則支持?jǐn)?shù)十萬的甚至百萬并發(fā)連接。
5、支持各種應(yīng)用層協(xié)議
WorkerMan接口上支持各種應(yīng)用層協(xié)議,包括自定義協(xié)議。在WorkerMan中更換協(xié)議同樣非常簡單,同樣只是配置一個(gè)字段,協(xié)議自動(dòng)切換,業(yè)務(wù)代碼零改動(dòng),甚至可以開啟多個(gè)不同協(xié)議的端口,滿足不同的客戶端需求。
6、支持高并發(fā)
WorkerMan支持Libevent事件輪詢庫(需要安裝Libevent擴(kuò)展), 使用Libevent在高并發(fā)時(shí)性能非常卓越,如果沒有安裝Libevent則使用PHP內(nèi)置的Select相關(guān)系統(tǒng)調(diào)用,性能也同樣非常強(qiáng)悍。
以上是“workerman怎么樣”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!