1. 程式人生 > >workerman 這個 php 級的 socket 伺服器框架 的簡介 by 李亮

workerman 這個 php 級的 socket 伺服器框架 的簡介 by 李亮

本人名字叫李亮,是Workerman開源框架的作者,曾經在騰訊朋友、QQ相簿、QQ空間做Coder工作。目前在聚美優品工作 

1、騰訊朋友 

我2010年畢業後第一份工作,持續2年左右。朋友網的後端開發全部是PHPer,朋友網使用的Server(當然不包括底層儲存Server)也幾乎都是PHP寫的,包括Webserver(PWS)、 SOA伺服器(PSF)、訊息佇列伺服器(SAPS)。這些PHP寫的Server部署超過千臺,對,你沒看錯,超過千臺的部署規模,具體可以參見PHP技術峰會 韓天峰 的PPT介紹或者視訊錄影。現在去朋友網抓下http頭,還能看到 Server:Tencent/PWS 標識。 


2、QQ相簿 
在朋友網任職期間曾負責photo.qq.com相簿改版工作,同樣除了底層儲存,其他Server全部是用朋友網的那一套PHP寫的Server部署的。由於photo.qq.com功能模組不復雜,所有Server只部署了十幾臺支撐了每天5000W左右的pv 

3、QQ空間 
QQ空間的開發都是寫C/C++的,但是同樣也部署了不少PHP寫的Server,具體部署多少太不詳,因為我只在QQ空間做了半年的開發。 

前一陣看到CSDN關於企業QQ架構的專訪,其中也說到了PHP寫的Server在架構中的各種運用,這個是連結 
http://www.csdn.net/article/2014-08-21/2821302-interview-tecent-b-qq-shuai-wang


我目前在聚美優品工作,聚美優品的後端Server(除了儲存)幾乎都是基於我寫的PHPServer執行的,所有業務系統加起來確實有幾百臺。為何用這麼多機器,我想你也應該知道原因了,聚美優品的限時搶購業務決定的,搶購的瞬時請求量非常恐怖,不用這麼多機器,網站瞬間癱瘓了。 

我待過的兩家上市公司都有過這麼大PHP server的部署規模,相信你不用再猜疑了。 

為何這些大公司熱衷於PHP寫的Server呢,而不轉 golang/erlang, 我想大概有以下原因: 
1、首先是PHP寫的Server和golang/erlang等語言寫的Server在效能上沒有多大的差距,尤其是業務中涉及頻繁的IO操作時,比如mysql資料庫等儲存。效能差距一般只有在CPU密集型計算時才會顯示出來,當然編譯型的語言肯定勝出,其他指令碼語言差距仍然不太大。 


2、大公司某個專案的開發人員眾多,當新增一個語言時會給開發工程師和運維工程師以及專案管理帶來巨大的挑戰和風險 

3、PHP在Web容器下執行確實有很大的效能損耗,包括apache、nginx等Web容器自身的開銷、Web容器與PHP通訊的開銷,Web容器下PHP自身每個請求週期反覆初始化執行環境最後有銷燬一切的開銷等。為了避免這些問題,使得PHP開發者去用PHP實現自己的Server 

4、PHP的開發效率非常高,例如朋友網20多個PHPer每天都發布版本很多版本,有時候我自己一天都會發布幾個版本。使用PHP能夠快速開發迭代,迅速佔領市場。自然用PHP寫Server也會帶來開發效率大大提升的好處。