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在架构中的各种运用,这个是链接
我目前在聚美优品工作,聚美优品的后端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也会带来开发效率大大提升的好处。
@ 说的没错,什么语言适合做什么事情,但我要说的是PHP也同样适合写Server,如果能用合适的又是大家熟悉的语言去做效果会更好。
最后建议@ 不要道听途说,“相信业界主流认识是 PHP 不是用来干这个的”,请实践后再下结论。在我看来腾讯以及我现在所在的公司对PHP写的Server的大规模部署和实践应该足以说明PHP同样适合干这个。