日期:2014-05-17  浏览次数:20534 次

php技术大会个人所学总结(转载)
1.webmatrix 形如frontpage类似的生成php .net站点的工具。

2.php在淘宝的搜索的前端的使用,淘宝虽然以前全站都是java做的业务逻辑,但是最近几年也大型使用php作为前端业务逻辑,后端采用java+c实现一些服务和接口。既然是走接口,就基本上是http,但是同时请求几个http接口的时候,由于php没有多线程的概念,必须顺序执行,所以淘宝用了curl的并发请求来减少接口访问等待时间,具体的请参看博客 http://www.searchtb.com/2010/12/using-multicurl-to-improve-performance.html

淘宝搜索的架构:

(php+apache电信、网通、教育网cdn)——>memcache————->搜索接口

3.腾讯微博的总结:
存储:微博上碎片的小信息的存储,采用腾讯自己开发的一套存储系统,TLV格式(介绍),就是type+length+value,可以像mysql的静态表那样把所有的信息都设置成定长的,这样有利于程序和磁盘寻址找到数据。存储的数据按照热度分别存放在内存(一两天的数据)——–>ssd(几周的数据)——–>一般的磁盘,这样可以保证热数据的获取的速度。

分层设计:底层只实现数据接口,理论上应该是原子操作,不涉及业务逻辑,上层负责各种业务逻辑、数据分发、数据展示等工作。保证每一层的的修改不影响其他层,也就是和http的四层透明代理一样。

cache设计:每一层都有cache设置,保证上一层的cache失效后不会把后端的全挂掉,当上层有了数据修改,通过触发器的方式来刷缓存。

数据交换和分发:由于微博的特定性和腾讯的超级长的战线,微博数据需要同步到很多地方,采用一种腾讯内部的UDP协议传输——OIDB,为什么采用UDP,首先是UDP比TCP的传输快很多,其次可能是因为客户端的原因。

4.php在金山游戏运营中的使用

张宴上来就讲了他的一个新的团队开发的模式,在window下开发,用linux调试,应该是本地windows的nginx用fastcgi的方式跑linux下的服务器的php,然后在linux下挂载windows的共享目录,实现代码的实时调试,并且保持svn的控制。这个个不错的调试方法,既保证了svn,又能快速在windows上开发,用linux的真实环境运行,一举三得。

各种语言之间的协同,php和c、c++等写的程序,通过一些协议进行交换,一般是http协议或者mc等封装协议

5.惠新宸,php在百度的使用情况

总结1:目前百度、新浪等大公司都有了一个特殊的平台,在新浪叫动态应用平台(以及有开放给外面使用的sae),百度有bae,都是提供一定规范的php+apache+mysql+cache+存储的环境服务,所有的小项目都可以到上面去运行。这样有很多好处,首先是运维工程师解放了,他们再也不用为每个应用单独配置特殊的服务器了;其次是突发流量、ddos等的时候可以水平任意扩容。

总结2:php为什么慢,因为php到最后的汇编指令要比c、c++等程序多10倍,这个是导致程序慢的根本原因。但是php到底是不是当前互联网的速度瓶颈?当前互联网的瓶颈应该是IO——网络IO、磁盘IO等。

总结3:facebook的hip-hop的优化的最根本的原理,php里面的所有的变量、函数都存放在一个关联的数据结构里面,当我们使用一个变量、一个函数的时候,都需要从里面查询一遍,这个很慢,hip-hop就把这个符号解析给拿掉了,使寻址速度更快。

总结4:百度的Ap框架,就是用php的扩展实现一个php的框架,比用php写的框架快,原因还是符号寻址的问题。

刘晓震,新浪博客的架构

新浪博客的架构

新浪博客使用的是最经典的架构

f5—->nginx—->apache+php->memcache—->mysql(或者key-value的mdb)

具体的如下

http://www.phpchina.com/?action-viewnews-itemid-38418