搜尋
首頁php框架Swooleswoole怎麼運行

swoole怎麼運行

Dec 12, 2019 pm 03:53 PM
swoole

swoole怎麼運行

swoole兩種運行模式介紹:

單一執行緒模式(SWOOLE_BASE)

這種模式就是傳統的非同步非阻塞Server。與Nginx和Node.js等程式是完全一致的。

在時間循環中直接回呼PHP的函數,而不是dispatch投遞任務。如果回呼函數中有阻塞操作會導致Server退化為同步模式。 worker_num參數對與BASE模式仍然有效,會啟動多個Worker進程。

BASE模式下沒有Master進程的角色

每個Worker進程同時承擔了Process模式下Reactor線程和Worker進程兩部分職責

BASE模式下Manager進程是可選的,當設定了worker_num=1,並且沒有使用Task和MaxRequest特性時,底層將直接建立一個單獨的Worker進程,不建立Manager進程

BASE模式的優點:

BASE模式沒有IPC開銷,效能更好

BASE模式程式碼更簡單,不容易出錯

BASE模式的缺點:

TCP連線是在Worker進程中維持的,所以當某個Worker進程掛掉時,此Worker內的所有連接都將被關閉

少量TCP長連接無法利用到所有Worker進程

TCP連接與Worker是綁定的,長連接應用中某些連接的資料量大,這些連接所在的Worker進程負載會非常高。但某些連線資料量小,所以在Worker進程的負載會非常低,不同的Worker進程無法達到平衡。

BASE模式的適用場景:

如果客戶端連線之間不需要交互,可以使用BASE模式。如Memcache、Http伺服器等。

推薦學習: swoole視訊教學

#進程模式(SWOOLE_PROCESS)

多重進程模式是最複雜的方式,用了大量的進程間通訊、進程管理機制。適合業務邏輯非常複雜的場景。 Swoole提供了完善的進程管理、記憶體保護機制。在業務邏輯非常複雜的情況下,也可以長期穩定運作。

Swoole在Reactor執行緒中提供了Buffer的功能,可以應付大量慢速連線和逐位元組的惡意用戶端。另外也提供了CPU親和設定選項,讓程式運作的效率更好。

進程模式的優點:

連線與資料請求傳送是分離的,不會因為某些連線資料量大某些連線資料量小導致Worker進程不均衡

#Worker進程發送致命錯誤時,連接並不會被切斷

可實現單連接並發,僅保持少量TCP連接,請求可以並發地在多個Worker進程中處理

進程模式的缺點:

存在2次IPC的開銷,master進程與worker進程需要使用UnixSocket進行通訊

不支援某些進階功能,如sendwait、pause、resume等操作

以上是swoole怎麼運行的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SublimeText3 Mac版

SublimeText3 Mac版

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

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具