Swoole 學(xué)習(xí)指南

Swoole到底是個(gè)什么東西?

swoole
作者:韓天峰解答(資深PHP程序員,Swoole開源項(xiàng)目創(chuàng)始人钱磅,PHP官方擴(kuò)展開發(fā)組成員。)

一直以來在其他編程語言程序員心目中PHP就是個(gè)套HTML頁面的童社。所謂PHP程序員就是搞WordPress、discuz二次開發(fā)著隆,一個(gè)月拿三五千的loser扰楼,和我大Java工程師相比簡(jiǎn)直low爆了。
但大家黑了PHP半天美浦,才發(fā)現(xiàn)PHP最近這幾年反而越來越流行了弦赖,PHPer們的工資可一點(diǎn)都不低。就拿我司來說吧抵代,之前面過一個(gè)PHP程序員工作三年多腾节,水平一般吧忘嫉,后來公司開價(jià)2萬/m收了荤牍。
水平好一點(diǎn)的平均都在3-4萬/m案腺。實(shí)際上作為一名PHP程序員,我很清楚PHP的確有很多局限性康吵,比如Unix系統(tǒng)編程劈榨、網(wǎng)絡(luò)通信編程、異步io晦嵌,大部分PHPer不懂同辣。
PHP界也確實(shí)沒有這樣的東西。Swoole開源項(xiàng)目就是為了彌補(bǔ)PHP在這些方面的缺陷誕生的惭载。與WordPress這些產(chǎn)品不同旱函,swoole實(shí)際上是一個(gè)網(wǎng)絡(luò)通信和異步io的引擎,一個(gè)基礎(chǔ)庫描滔。PHPer可以基于swoole去實(shí)現(xiàn)過去PHP無法實(shí)現(xiàn)的功能棒妨。swoole為PHPer打開了通往另一個(gè)世界的大門。

用swoole可以做什么含长?

用戶打開了我們的網(wǎng)站券腔。他要做的就是勾選需要發(fā)郵件的代理商列表,然后把結(jié)算郵件發(fā)出去拘泞。
假如我們需要發(fā)1封郵件纷纫,我們寫個(gè)函數(shù)執(zhí)行即可∨汶纾考慮到網(wǎng)絡(luò)可能會(huì)稍微有點(diǎn)延遲辱魁,但是是可以接受的,用戶會(huì)乖乖等你的網(wǎng)頁發(fā)完郵件了再關(guān)閉網(wǎng)頁偷厦。
假如我們要發(fā)布10封郵件商叹,用一個(gè)for循環(huán),循環(huán)10遍執(zhí)行發(fā)郵件操作只泼。這時(shí)候剖笙,也許10倍的網(wǎng)絡(luò)延遲會(huì)讓用戶稍微有點(diǎn)不耐煩,但勉強(qiáng)可以等吧请唱。
假如要發(fā)1000封郵件弥咪,for循環(huán)1000遍,用戶直接揭竿而起十绑,什么破網(wǎng)站聚至!
但實(shí)際上,我們很可能有超過2萬的郵件本橙。怎么處理這個(gè)延遲的問題扳躬?
答案就是用異步。把“發(fā)郵件”這個(gè)操作封裝,然后后臺(tái)異步地執(zhí)行1萬遍贷币。這樣的話击胜,用戶提交網(wǎng)頁后,他所等待的時(shí)間只是“把發(fā)郵件任務(wù)請(qǐng)求推送進(jìn)隊(duì)列里”的時(shí)間役纹。而我們的后臺(tái)服務(wù)將在用戶看不見的地方跑偶摔。而swoole就為我們實(shí)現(xiàn)了異步隊(duì)列處理及并發(fā)等問題。
Swoole需要掌握哪些基礎(chǔ)?

多進(jìn)程/多線程

了解Linux操作系統(tǒng)進(jìn)程和線程的概念
了解Linux進(jìn)程/線程切換調(diào)度的基本知識(shí)
了解進(jìn)程間通信的基本知識(shí)促脉,如管道辰斋、UnixSocket、消息隊(duì)列瘸味、共享內(nèi)存

SOCKET

了解SOCKET的基本操作如accept/connect宫仗、send/recv、close旁仿、listen锰什、bind
了解SOCKET的接收緩存區(qū)、發(fā)送緩存區(qū)丁逝、阻塞/非阻塞汁胆、超時(shí)等概念

IO復(fù)用

了解select/poll/epoll
了解基于select/epoll實(shí)現(xiàn)的事件循環(huán),Reactor模型
了解可讀事件霜幼、可寫事件

TCP/IP網(wǎng)絡(luò)協(xié)議

了解TCP/IP協(xié)議
了解TCP嫩码、UDP傳輸協(xié)議

調(diào)試工具

使用 gdb 調(diào)試Linux程序
使用 strace 跟蹤進(jìn)程的系統(tǒng)調(diào)用
使用 tcpdump 跟蹤網(wǎng)絡(luò)通信過程
其他Linux系統(tǒng)工具,如ps罪既、lsof铸题、top、vmstat琢感、netstat丢间、sar、ss等

swoole高級(jí)講解

安裝篇
源碼安裝Swoole
源碼安裝PHP7
讓PHP支持Swoole
基礎(chǔ)篇
網(wǎng)絡(luò)通信引擎
Tcp服務(wù)/客戶端
websocket服務(wù)器
進(jìn)階篇
異步MySQL場(chǎng)景
處理異步實(shí)時(shí)日志
高性能消息隊(duì)列
異步任務(wù)task
進(jìn)程驹针、內(nèi)存烘挫、協(xié)程
公眾號(hào):【代碼技巧】 回復(fù):swoole 獲取swoole高級(jí)詳解教程,多謝支持

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末柬甥,一起剝皮案震驚了整個(gè)濱河市饮六,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌苛蒲,老刑警劉巖卤橄,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異臂外,居然都是意外死亡窟扑,警方通過查閱死者的電腦和手機(jī)喇颁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嚎货,“玉大人无牵,你說我怎么就攤上這事〕Ф叮” “怎么了?”我有些...
    開封第一講書人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵克懊,是天一觀的道長忱辅。 經(jīng)常有香客問我,道長谭溉,這世上最難降的妖魔是什么墙懂? 我笑而不...
    開封第一講書人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮扮念,結(jié)果婚禮上损搬,老公的妹妹穿的比我還像新娘。我一直安慰自己柜与,他們只是感情好巧勤,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著弄匕,像睡著了一般颅悉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上迁匠,一...
    開封第一講書人閱讀 51,624評(píng)論 1 305
  • 那天剩瓶,我揣著相機(jī)與錄音,去河邊找鬼城丧。 笑死延曙,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的亡哄。 我是一名探鬼主播枝缔,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼蚊惯!你這毒婦竟也來了魂仍?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤拣挪,失蹤者是張志新(化名)和其女友劉穎擦酌,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體菠劝,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡赊舶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片笼平。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡园骆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出寓调,到底是詐尸還是另有隱情锌唾,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布夺英,位于F島的核電站晌涕,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏痛悯。R本人自食惡果不足惜余黎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望载萌。 院中可真熱鬧惧财,春花似錦、人聲如沸扭仁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽乖坠。三九已至帘靡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瓤帚,已是汗流浹背描姚。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留戈次,地道東北人轩勘。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像怯邪,于是被迫代替她去往敵國和親绊寻。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 前言 上一回講到悬秉,Swoole終于成功邂逅了PHP澄步,現(xiàn)在要開始它們的奇妙路程了。 Server之初 通常和泌,我們會(huì)把...
    零一間閱讀 2,873評(píng)論 0 12
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理村缸,服務(wù)發(fā)現(xiàn),斷路器武氓,智...
    卡卡羅2017閱讀 134,659評(píng)論 18 139
  • 今天是寫作輸出的第十天,寫了很多感慨感想的我东羹,今晚決定寫一些輕松的內(nèi)容剂桥。 Let's go ! 學(xué)...
    左佳妮閱讀 141評(píng)論 2 3
  • Implement an iterative, post-order traversal of a given b...
    GakkiLove閱讀 360評(píng)論 0 0