Workerman -- 高效能的 PHP socket 架構

來源:互聯網
上載者:User

Workerman 是一個高效能的PHP socket 伺服器架構,workerman基於PHP多進程以及libevent事件輪詢庫,PHP開發人員只要實現一兩個介面,便可以開發出自己的網路應用,例如Rpc服務、聊天室伺服器、遊戲伺服器等。

Workerman 的目標是讓PHP開發人員更容易的開發出基於socket的高效能的應用服務,而不用去瞭解PHP socket以及PHP多進程細節。 workerman本身是一個PHP多進程伺服器架構,具有PHP進程管理以及socket通訊的模組,所以不依賴php-fpm、nginx或者apache等這些容器便可以獨立運行。

特性

  • 使用PHP開發

  • 支援PHP多進程

  • 支援TCP/UDP

  • 介面上支援各種應用程式層協議

  • 支援libevent事件輪詢庫,支援高並發

  • 支援服務平滑重啟

  • 支援PHP檔案更新檢測及自動載入

  • 支援PHP長串連

  • 支援以指定使用者運行子進程

  • 支援telnet遠端控制

  • 高效能

基於workerman已經有很多的網路應用程式,例例如 多人線上小蝌蚪遊戲 、 PHP-Json-Rpc 、 PHP-Thrift-Rpc 、 PHP-WebSocket聊天室 、 PHP統計監控系統 等等。

範例程式碼:

count = 4;// 當收到用戶端發來的資料後返回hello $data給用戶端$ws_worker->onMessage = function($connection, $data){    // 向用戶端發送hello $data    $connection->send('hello ' . $data);};// 運行Worker::runAll();

效能壓力測試

測試環境:

系統:ubuntu 12.04 LTS 64位記憶體:8Gcpu:Intel® Core i3-3220 CPU @ 3.30GHz × 4

商務邏輯:

hello world

結果:

短連結(每次請求完成後關閉連結,下次請求建立新的連結):條件: 壓測指令碼開500個線程,每個線程連結Workerman 10W次,每次連結發送1個請求結果: 輸送量:3W/S , cpu:60% , 記憶體佔用:4*8M = 32M
長連結(每次請求後不關閉連結,下次請求繼續複用這個連結):條件: 壓測指令碼開1000個線程,每個線程連結Workerman 1次,每個連結發送10W請求結果: 輸送量:13W/S , cpu:68% , 記憶體佔用:4*8M = 32M
無流量抖動,無記憶體流失,效能非常強悍

workerman啟動介面:

workerman狀態查看介面:

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.