php技术大会2011

作者:heyue 时间:2011-05-08 分类:未分类 评论:3 条 浏览:3693

2011-05-07,在北京长城饭店参加完了2011年php技术大会,这个算是中国php的最高技术论坛吧,到场的人大概有1000多,当然,百度、腾讯、淘宝、新浪等大公司来的人应该超过了一半。php,这个顶着中国70%左右的互联网流量的编程语言,神奇的把大家聚合在了一起。

先给一张给力的图,这个太针对程序员了。

php大会辣妹跳舞

php大会辣妹跳舞

前一天晚上看了一下课表,发现上午是各种官方的致辞,就索性晚点过去了,正好是微软的一个管php方向的总监在谈php在window上的一些东西,我想他最想表达的意思是“微软更懂php”,微软也开发了很多开发php的软件,一个叫webmatrix的东西,让我想起了几年前的frontpage,一拉一拖,几个按钮,就生成了一个动态的php或者.net的网站,很神奇。但是按照我的理解,php为什么这么流行,是因为它的全透明性,每一行代码都有它的用处,从数据库到cache再到页面,都很对开发者很透明,理论上,php的开发者并不喜欢不透明地开发php的代码(个人理解)。

第二个就是intel的meego,我可以保证的是这个系统绝对是很高效的,这么多年来,intel为世界的服务器生产了这么多的cpu,而且这些cpu很多事用来跑linux的,这就意味着要对linux做深入的研究才能进行相关的优化。这是上层公司无法达到的高度,但是由于它是linux,就有一个问题,就是开发的门槛太高、开发工具不同统一、开发语言不统一等问题。android最牛逼的就是统一设计了处理了上面的一些问题,让开发者可以迅速入门。meego值得期待,但是路漫漫。

上午第三课是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————->搜索接口

这种最稳定的方式。

第四个是mapabc的讲座,地图这个东西,大家都在发掘它的潜在价值,比如现在最火的lbs,团购等都是基于本地的2公里的一些方向,这就意味着地图将在互联网上有着越来越多的使用。

中午时间很紧,和新浪视频的架构师俊杰以及腾讯微博的架构师潘少林 以及很多群里面的朋友吃了一顿永和豆浆,下午都去顶少林

潘少林,腾讯微博的架构

总结1:关于腾讯:加班很多,昨晚加班,上午加班,中午过来,演讲完还得加班。腾讯最大的诱惑:10亿给员工无息贷款买房。

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

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

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

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

柴春燕,当当网构建统一底层的移动开发

这个主要是讲移动互联网那个如何对各种终端有不同的输出,由于以前没有涉及过太多的手机网站的开发,不是很清楚。大概的内容,要针对不同的手机浏览器,进行不同的页面输出,但是数据层必须保持一定,而且后端一般是走http接口和请求主站的数据,所以需要构架统一的数据底层。

张宴,php在金山游戏运营中的使用

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

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

总结3:关于游戏服务器的数据交换那一块,没有怎么搞懂,主要是我不玩网游,没有场景的想象力。

惠新宸,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

大概写完了,以后有了ppt再补充把,php大会总的来说,办的很好,认识了很多圈内的人,希望以后能有更多深入的交流。

相关推荐
更多

I Can’t Wait for NoSQL to Die【转】
Posted on 07月27日
bloom filter的开源实现程序memcached bloom filter
Posted on 11月06日
程序员与文人
Posted on 05月01日
技术与工作
Posted on 05月09日