搜尋
首頁php框架WorkermanWorkerMan的特性介紹

WorkerMan的特性介紹

Feb 04, 2020 pm 05:58 PM
workerman

Workerman是一款開源高效能非同步PHP socket即時通訊框架。本文就來為大家介紹一些Workerman的特性,希望都大家有一定的幫助。

WorkerMan的特性介紹

相關推薦:《workerman教學

WorkerMan的特性介紹:

1、純PHP開發

使用WorkerMan開發的應用程式不依賴php-fpm、apache、nginx這些容器就可以獨立運作。這使得PHP開發者開發、部署、調試應用程式非常方便。

2、支援PHP多進程

為了充分發揮伺服器多CPU的效能,WorkerMan預設支援多進程多任務。 WorkerMan開啟一個主進程和多個子進程對外提供服務, 主進程負責監控子進程,子進程獨自監聽網路連接並接收發送及處理數據,由於進程模型簡單,使得WorkerMan更加穩定,更加高效。

3、支援TCP、UDP

WorkerMan支援TCP和UDP兩種傳**傳輸協議**,只需要更改一個屬性便可以更換傳輸層協議,業務代碼無需改動。

4、支援長連接

很多時候需要PHP應用程式要與客戶端保持長連接,例如聊天室、遊戲等,但是傳統的PHP容器(apache、nginx、php- fpm)很難做到這一點。 

使用WorkerMan,只要服務端業務不主動呼叫關閉連接接口,便可使用PHP長連線。 WorkerMan單一進程可以支援上萬的並發連接,多進程則支援數十萬的甚至百萬並發連接。

5、支援各種應用層協定

WorkerMan介面上支援各種應用層協議,包括自訂協定。在WorkerMan中更換協議同樣非常簡單,同樣只是配置一個字段,協議自動切換,業務代碼零改動,甚至可以開啟多個不同協議的端口,滿足不同的客戶端需求。

6、支援高並發、

WorkerMan支援Libevent事件輪詢庫(需要安裝Libevent擴充功能), 使用Libevent在高並發時效能非常卓越,如果沒有安裝Libevent則使用PHP內建的Select相關係統調用,性能也同樣非常強悍。

7、支援服務平滑重啟

當需要重新啟動服務時(例如發布版本),我們不希望正在處理用戶請求的進程被立刻終止,更不希望重啟的那一刻導致客戶端通訊失敗。

WorkerMan提供了平滑重啟功能,能夠保障服務平滑升級,不影響客戶端的使用。

8、支援文件更新偵測及自動載入

在開發過程中,我們希望在我們改動程式碼後能夠立刻生效,以便查看結果。 WorkerMan提供了FileMonitor檔案監控元件,只要檔案有更新,WorkerMan會自動執行reload,以便載入新的文件,使其生效。

9、支援以指定使用者執行子進程

因為子進程是實際處理使用者請求的進程,為了安全考慮,子進程不能有太高的權限,所以WorkerMan支援設定子運行進程運行的用戶,使你的伺服器更加安全。

10、支援物件或資源永久保持

WorkerMan在運行過程中只會載入解析一次PHP文件,然後便常駐內存,這使得類別及函數聲明、PHP執行環境、符號表等不會重複建立銷毀,這與Web容器下運作的PHP機制是完全不同的。

在WorkerMan中,一個進程生命週期內靜態成員或全域變數在不主動銷毀的情況下是永久保持的,也就是將物件或連結等資源放到全域變數或類別靜態成員中則在當前進程的整個生命週期內的所有請求都可以重複使用。

例如只要單一進程內初始化一次資料庫連接,則以後這個進程的所有請求都可以復用這個資料庫連接,避免了頻繁連接資料庫過程中TCP三次握手、 資料庫權限驗證、斷開連接時TCP四次握手的過程,極大的提高了應用程式效率。

11、高效能

由於php檔案從磁碟讀取解析一次後便會常駐內存,下次使用時直接使用內存中的opcode, 極大的減少了磁碟IO及PHP中請求初始化、創建執行環境、詞法解析、語法解析、編譯opcode、請求關閉等諸多耗時過程, 且不依賴nginx、apache等容器,少了nginx等容器與PHP通訊的開銷,最主要的是資源可以永久保持,不必每次初始化資料庫連接等等, 所以使用WorkerMan開發應用程序,性能非常高。

12、支援HHVM

支援在HHVM虛擬機上執行,可倍增PHP效能。尤其是在cpu密集運算業務中,效能非常優異。透過實際壓力測試對比,在沒有負載業務的情況下,WorkerMan在HHVM下運行比在Zend PHP5.6運行網路吞吐量提高了30-80%左右

參考文件

# http://doc.workerman.net/principle.html

原文連結:https://blog.csdn.net/u012164509/article/details/90749646

更多workerman知識請關注PHP中文網workerman框架教學欄位。

以上是WorkerMan的特性介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:csdn。如有侵權,請聯絡admin@php.cn刪除
Workerman內置WebSocket客戶端的關鍵功能是什麼?Workerman內置WebSocket客戶端的關鍵功能是什麼?Mar 18, 2025 pm 04:20 PM

Workerman的Websocket客戶端可以通過異步通信,高性能,可伸縮性和安全性等功能增強實時通信,並可以輕鬆地與現有系統集成。

如何使用工作人員來構建實時協作工具?如何使用工作人員來構建實時協作工具?Mar 18, 2025 pm 04:15 PM

本文討論了使用高性能PHP服務器Workerman來構建實時協作工具。它涵蓋安裝,服務器設置,實時功能實現以及與現有系統集成,強調Workerman的密鑰F

為低延遲應用優化工作人員的最佳方法是什麼?為低延遲應用優化工作人員的最佳方法是什麼?Mar 18, 2025 pm 04:14 PM

本文討論了針對低延遲應用程序的優化工作人員,重點介紹異步編程,網絡配置,資源管理,數據傳輸最小化,負載平衡和常規更新。

如何與Workerman和MySQL實施實時數據同步?如何與Workerman和MySQL實施實時數據同步?Mar 18, 2025 pm 04:13 PM

本文討論了使用Workerman和MySQL實施實時數據同步的,重點是設置,最佳實踐,確保數據一致性以及解決共同挑戰。

在無服務器體系結構中使用Workerman的主要考慮因素是什麼?在無服務器體系結構中使用Workerman的主要考慮因素是什麼?Mar 18, 2025 pm 04:12 PM

本文討論了將工作人員集成到無服務器體系結構中,專注於可擴展性,無狀態,冷啟動,資源管理和集成複雜性。 Workerman通過高並發,降低冷STA來提高性能

如何使用Workerman建立高性能的電子商務平台?如何使用Workerman建立高性能的電子商務平台?Mar 18, 2025 pm 04:11 PM

文章討論了使用Workerman建立高性能的電子商務平台,重點關注其功能,例如Websocket支持和可擴展性,以提高實時交互和效率。

Workerman的Websocket服務器的高級功能是什麼?Workerman的Websocket服務器的高級功能是什麼?Mar 18, 2025 pm 04:08 PM

Workerman的Websocket服務器可以通過可擴展性,低延遲和針對常見威脅的安全措施等功能增強實時通信。

如何使用工作人員來構建實時分析儀表板?如何使用工作人員來構建實時分析儀表板?Mar 18, 2025 pm 04:07 PM

本文討論了使用高性能PHP服務器Workerman來構建實時分析儀表板。它涵蓋了與React,vue.js和Angular等框架的安裝,服務器設置,數據處理以及前端集成。關鍵功能

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)