workman 和swoole 區別 和異同
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 gateway worker 模型說明:
這種模型多了一個gateway程式組,工作流程與master worker模型基本相同,區別是worker程式不再直接與客戶端打交道,客戶端與worker程式之間多了一個gateway程式,gateway專職處理網路IO,並維護客戶端的長連線。
master gateway worker 模型非常適合長連線應用
相關文章
- RestController和Controller的區別和異同RESTController
- dependencies 和 devDependencies 的異同dev
- 中斷和異常,陷阱的區別和聯絡
- java與php區別或異同(整理、整合)JavaPHP
- Java中異常分類和Throw和Throws的區別Java
- Swift中Class和Struct異同SwiftStruct
- HTTP 和 HTTPS 的異同HTTP
- 執行時異常和檢查性異常區別
- 異常-編譯期異常和執行期異常的區別編譯
- Web前端和後端的異同Web前端後端
- 策略模式和模板方法同與異模式
- 異常-throw的概述以及和throws的區別
- Java中Error和Exception的異同以及執行時異常(Runtime exception)與檢查型異常(checked exception)的區別JavaErrorException
- 小米電視3s和小米電視3區別對比 異同點詳細分析
- ../和./和/的區別
- 和區別
- python中錯誤和異常有什麼區別Python
- 前端和後端開發的異同前端後端
- windows dll 和 Linux so 的異同WindowsLinux
- 策略模式和模板方法模式的異同模式
- 以太坊和比特幣區塊鏈的異同(一些QA)比特幣區塊鏈
- 有同學問我:Fetch 和 Ajax 有什麼區別?
- Java異常十一:使用throw丟擲異常物件;throw和throws的區別Java物件
- Java 中 this 和 super 的用法概述及異同Java
- Petapoco、Dapper和EF Core的異同APP
- if …if 和if …else if 區別
- 和 的區別
- as 和 with的區別
- in 和 exists區別
- ||和??的區別
- /*和/**的區別
- LinkedList和ArrayList的區別、Vector和ArrayList的區別
- http和https的區別/get和post的區別HTTP
- 事件關鍵詞 bind 和 catch 的區別、事件物件 target 和 currentTarget 的差異事件物件
- 【Java面試題】20 執行時異常和一般異常有何區別Java面試題
- RAC中lsnrctl和srvctl的區別(監聽狀態異常)
- PostgreSQL 和 MySQL 在用途、好處、特性和特點上的異同MySql
- java和php基礎部分相同或異同JavaPHP