workman 和swoole 區別 和異同

代官山發表於2019-01-14

workman 和swoole 區別 和異同

2018年03月12日 10:17:01 木魚僧 閱讀數:11847

 版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/fastjack/article/details/79523363

workerman

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

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

 

 

其中

 workerman有兩種程式模型

        1、基本的master worker模型

        2、master gateway worker模型

master worker模型工作流程及程式間關係如下:

master worker模型說明:
master程式為主程式,啟動過程中讀取conf配置,根據每個應用配置中的ip和埠建立監聽socket,然後再根據配置中的程式數建立對應數量的子程式即worker程式,worker程式會自動繼承master程式建立的監聽socket,使得worker程式能夠獨立的接受並處理客戶端的連線。而後master程式進入監聽訊號的邏輯中,監聽worker程式退出訊號(worker程式退出後,系統會自動向master程式傳送一個SIGHCLD訊號,mater程式會重新建立子程式,將缺失的子程式補上),master程式還會監聽workermand指令碼發來的停止訊號(SIGINT)和平滑重啟服務訊號(SIGHUP)

worker程式為master程式派生出來的子程式,自動繼承了master程式的監聽socket,每個worker程式獨立的接受並處理客戶端的連線。

master worker模型比較適合業務簡單的應用或者短連線應用

 

 

 

 

 

master gateway worker模型工作流程和程式間關係如下:
master worker

master gateway worker 模型說明:
這種模型多了一個gateway程式組,工作流程與master worker模型基本相同,區別是worker程式不再直接與客戶端打交道,客戶端與worker程式之間多了一個gateway程式,gateway專職處理網路IO,並維護客戶端的長連線。

master gateway worker 模型非常適合長連線應用

相關文章