swoole提供了php語(yǔ)言的異步多線程服務(wù)器,異步TCP/udp網(wǎng)絡(luò)客戶端,異步mysql,異步redis, 數(shù)據(jù)庫(kù)連接池,AsyncTask,消息隊(duì)列,毫秒定時(shí)器,異步文件讀寫,異步DNS查詢。 swoole還內(nèi)置了http/websocket服務(wù)器端/客戶端、Http2.0服務(wù)器端。 ? ? (推薦學(xué)習(xí): swoole視頻教程)
Swoole底層內(nèi)置了異步非阻塞、多線程的網(wǎng)絡(luò)IO服務(wù)器。PHP程序員僅需處理事件回調(diào)即可,無(wú)需關(guān)心底層。與nginx/tornado/Node.JS等全異步的框架不同,Swoole既支持全異步,也支持同步。
視頻課程推薦→:《千萬(wàn)級(jí)數(shù)據(jù)并發(fā)解決方案(理論+實(shí)戰(zhàn))》
Swoole 如何處理高并發(fā)
①對(duì)Reactor模型介紹我們都知道IO復(fù)用異步非阻塞程序使用的是經(jīng)典的Reactor模型,Reactor就是反應(yīng)堆的意思,也就是說(shuō)它本身不處理任何數(shù)據(jù)收發(fā)。只是可以監(jiān)視一個(gè)socket(比如管道、eventfd、信號(hào))句柄的事件變化。
Reactor只作為一個(gè)事件發(fā)生器,實(shí)際對(duì)socket句柄的操作,如connect/accept、send/recv、close等都是在callback中完成的。看看下面圖片就可以了解到。
②swoole的架構(gòu)咱們?cè)賮?lái)看看swoole的架構(gòu),我們也可以從以下借鑒的圖片可以看出,swoole采用的架構(gòu)模式:多線程Reactor+多進(jìn)程Worker,因?yàn)閞eactor是基于epoll的,所以不難看出每個(gè)reactor,它可以用來(lái)處理無(wú)數(shù)個(gè)連接請(qǐng)求。
?如此,swoole就輕松的實(shí)現(xiàn)了高并發(fā)的處理。這里對(duì)高并發(fā)還不清楚的話,請(qǐng)自行網(wǎng)上看看教程,這里就不多做解釋了。