首頁 > php框架 > Swoole > Swoole如何處理高並發

Swoole如何處理高並發

(*-*)浩
發布: 2019-12-07 13:32:03
原創
2959 人瀏覽過

Swoole如何處理高並發

swoole如何處理高同時

①Reactor模型介紹                   #)IO複用非同步非阻塞程式使用經典的Reactor模型,Reactor顧名思義就是反應器的意思,它本身不處理任何資料收發。只是可以監視一個socket(也可以是管道、eventfd、訊號)句柄的事件變化。

Reactor只是一個事件產生器,實際對socket句柄的操作,如connect/accept、send/recv、close是在callback中完成的。

②swoole的架構

swoole採用多執行緒Reactor 多進程Worker。

當請求到達時,swoole是這樣處理的:

请求到达 Main Reactor
        |
        |
Main Reactor根据Reactor的情况,将请求注册给对应的Reactor
(每个Reactor都有epoll。用来监听客户端的变化)
        |
        |
客户端有变化时,交给worker来处理
        |
        |
worker处理完毕,通过进程间通信(比如管道、共享内存、消息队列)发给对应的reactor。
        |
        |
reactor将响应结果发给相应的连接
        |
        |
    请求处理完成
登入後複製

因為reactor基於epoll,所以每個reactor可以處理無數個連接請求。如此,swoole就輕鬆的處理了高並發。

以上是Swoole如何處理高並發的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板