真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

PHP的Swoole框架介紹

本篇內(nèi)容主要講解“PHP的Swoole框架介紹”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“PHP的Swoole框架介紹”吧!

成都創(chuàng)新互聯(lián)公司主營紅河網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都app開發(fā),紅河h5小程序設(shè)計搭建,紅河網(wǎng)站營銷推廣歡迎紅河等地區(qū)企業(yè)咨詢

PHP發(fā)展到現(xiàn)在,已經(jīng)不是單純做個Web、寫寫業(yè)務(wù)邏輯了,我們也可以使用 PHP 可以編寫高性能的異步并發(fā) TCP、UDP、Unix Socket、HTTP,WebSocket 服務(wù)??梢詮V泛應(yīng)用于互聯(lián)網(wǎng)、移動通信、微服務(wù)、企業(yè)軟件、云計算、網(wǎng)絡(luò)游戲、物聯(lián)網(wǎng)(IOT)、車聯(lián)網(wǎng)、智能家居等領(lǐng)域。

在異步網(wǎng)絡(luò)通信開發(fā)中有兩個用的比較多的框架,一個是swoole,另一個是workman,這個兩個有什么區(qū)別,我們下次可以再來分析,這次我們主要是對Swoole做一個基本的介紹。

Swoole是什么?

Swoole是一個PHP的C擴展,可用來開發(fā)PHP的高性能高并發(fā)TCP/UDP Server。Swoole的網(wǎng)絡(luò)IO部分基于epoll/kqueue事件循環(huán),是全異步非阻塞的。業(yè)務(wù)邏輯部分使用多進程同步阻塞方式來運行。這樣既保證了Server能夠應(yīng)對高并發(fā)和大量TCP連接。又保證業(yè)務(wù)代碼仍然可以簡單的編寫。

Swoole1.6.2之后增加了異步支持,應(yīng)用程序也可以像node.js一樣寫異步回調(diào)。

Swoole與Node.js相比更強大,支持同步/異步、多進程并行,Swoole提供了進程生命周期管理、內(nèi)存保護機制,開發(fā)者無需考慮底層細節(jié),專注于業(yè)務(wù)邏輯和功能的開發(fā)。

Swoole底層內(nèi)置了異步非阻塞、多線程的網(wǎng)絡(luò)IO服務(wù)器。PHP程序員僅需處理事件回調(diào)即可,無需關(guān)心底層。與Nginx/Tornado/Node.js等全異步的框架不同,Swoole既支持全異步,也支持同步。

Swoole從2.0版本開始支持了內(nèi)置協(xié)程,可以使用完全同步的代碼實現(xiàn)異步程序。PHP代碼無需額外增加任何關(guān)鍵詞,底層自動進行協(xié)程調(diào)度,實現(xiàn)異步。

Swoole是開源免費的自由軟件,授權(quán)協(xié)議是Apache2.0。企業(yè)和開發(fā)者均可免費使用Swoole的代碼,并且在Swoole之上所作的修改無需開源。

Swoole要求使用者必須具備一定的Linux/Unix環(huán)境編程基礎(chǔ)。

下面有幾個Swoole的模塊介紹:

Server

強大的TCP/UDP Server框架,支持多線程,EventLoop,事件驅(qū)動,異步,Worker進程組,Task異步任務(wù),毫秒定時器,SSL/TLS隧道加密。

Http\Server是Server的子類,內(nèi)置了Http的支持

WebSocket\Server是Http\Server的子類,內(nèi)置了WebSocket的支持

redis\Server是Server的子類,內(nèi)置了Redis服務(wù)器端協(xié)議的支持

子類可以調(diào)用父類的所有方法和屬性

Client

TCP/UDP/UnixSocket客戶端,支持IPv4/IPv6,支持SSL/TLS隧道加密,支持SSL雙向證書,支持同步并發(fā)調(diào)用,支持異步事件驅(qū)動編程。

Event

EventLoop API,讓用戶可以直接操作底層的事件循環(huán),將socket,stream,管道等Linux文件加入到事件循環(huán)中。

eventloop接口僅可用于socket類型的文件描述符,不能用于磁盤文件讀寫

Async

異步IO接口,提供了 異步文件系統(tǒng)IO,定時器,異步DNS查詢,異步MySQL等API,異步Http客戶端,異步Redis客戶端。

Timer:異步毫秒定時器,可以實現(xiàn)間隔時間或一次性的定時任務(wù)

swoole_async_read/swoole_async_write 文件系統(tǒng)操作的異步接口

異步回調(diào)API在4.4版本中已廢棄

Coroutine

Swoole在2.0開始內(nèi)置協(xié)程(Coroutine)的能力,提供了具備協(xié)程能力IO接口(統(tǒng)一在命名空間Swoole\Coroutine\*)。

協(xié)程可以理解為純用戶態(tài)的線程,其通過協(xié)作而不是搶占來進行切換。相對于進程或者線程,協(xié)程所有的操作都可以在用戶態(tài)完成,創(chuàng)建和切換的消耗更低。Swoole可以為每一個請求創(chuàng)建對應(yīng)的協(xié)程,根據(jù)IO的狀態(tài)來合理的調(diào)度協(xié)程,這會帶來了以下優(yōu)勢:

開發(fā)者可以無感知的用同步的代碼編寫方式達到異步IO的效果和性能,避免了傳統(tǒng)異步回調(diào)所帶來的離散的代碼邏輯和陷入多層回調(diào)中導(dǎo)致代碼無法維護。

Process

進程管理模塊,可以方便的創(chuàng)建子進程,進程間通信,進程管理。

Buffer

強大的內(nèi)存區(qū)管理工具,像C一樣進行指針計算,又無需關(guān)心內(nèi)存的申請和釋放,而且不用擔(dān)心內(nèi)存越界,底層全部做好了。

Table

基于共享內(nèi)存和自旋鎖實現(xiàn)的超高性能內(nèi)存表。徹底解決線程,進程間數(shù)據(jù)共享,加鎖同步等問題。

Table的性能可以達到單線程每秒讀寫200W次


Swoole用戶與案例

騰訊

QQ公眾號

騰訊生活服務(wù)號(QQ公眾號)的業(yè)務(wù)邏輯層基本都是基于swoole開發(fā)完成。

營銷QQ

Swoole在營銷QQ項目中也得到了大量應(yīng)用,如:增強版的消息網(wǎng)管server(tcp), 業(yè)務(wù)邏輯server(udp)。

百度

百度地圖

百度地圖:http://map.baidu.com/

采用swoole+redis,基于swoole擴展,根據(jù)內(nèi)部的需求,封裝了一套可擴展、高性的PHP server,已應(yīng)用于多個業(yè)務(wù)模塊,提供高并發(fā)的kv數(shù)據(jù)查詢及業(yè)務(wù)數(shù)據(jù)的在線計算,每天億級的PV量

百度訂單中心

作為百度統(tǒng)一的訂單中心,承擔(dān)著百度各業(yè)務(wù)線訂單數(shù)據(jù)的歸集、存儲、挖掘、分析等工作,旨在向各業(yè)務(wù)線提供用戶完整的訂單數(shù)據(jù);并以數(shù)據(jù)產(chǎn)品的形態(tài),向各業(yè)務(wù)線提供基于用戶消費行為的運營工具和相關(guān)報告。

邊鋒網(wǎng)絡(luò)

戰(zhàn)旗直播:http://www.zhanqi.tv

戰(zhàn)旗直播從單個laravel應(yīng)用在高并發(fā)下經(jīng)常502,后來用swoole + phalcon異步服務(wù)化架構(gòu)重構(gòu),實現(xiàn)高可擴展及可用性,每天幾億級Hits。

虎牙直播

虎牙直播:http://www.huya.com

虎牙直播APP基于Swoole實現(xiàn)了TCP長連接PUSH服務(wù),日均活躍200萬用戶。TCP并發(fā)連接數(shù)超過40萬,收發(fā)消息數(shù)峰值超過10萬條每秒。

YY語音

部門內(nèi)多款移動APP使用swoole作為底層框架,實現(xiàn)了手機客戶端與服務(wù)器段長連接,直接通信的模式。大大提升了移動網(wǎng)絡(luò)下應(yīng)用程序的用戶體驗。

到此,相信大家對“PHP的Swoole框架介紹”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!


本文題目:PHP的Swoole框架介紹
分享鏈接:http://weahome.cn/article/pjddic.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部