请输入您要查询的百科知识:

 

词条 洪强宁
释义

洪强宁,豆瓣网站的技术总监.豆瓣是一个非常著名的Web2.0网站,具有动态语言的优点,比如开发特别迅速。做的是一个Web2.0的网站,这种网站的特点就是always beta,用户的需求在随时发生变化,也不断发现新的价值。所以网站的结构和程序会不断变化,如果用Java做,你的开发量比较大,你就难以做出迅速地改变。Python的特点就是开发迅速,你可以在一两个小时,就做出一个功能.

洪强宁-关于豆瓣

系统架构图

洪强宁:关于豆瓣的系统架构图,首先我们在Web server上做个划分,把网站内容分为动态内容和静态内容。在豆瓣上所有的html都是动态内容,图片都是静态内容。分成两个Web 服务可以做不同的调优。 对动态内容,我们用的是nginx和lighttpd的混合,nginx做负载的平衡,lighttpd通过SCGi 与application server相连,application server是基于 quixote这个框架写的。

利用外部的资源

application server拿到用户的请求,分析用户的url,并且利用外部的资源,比如数据库,组合成一个html,返回。从数据库存取会比较慢,数据库有大量的IO,我们使用cache,我们使用的是Memcached,这是一个分布式的内存的cache,比如你可以用很多机器,每个机器有两个G的内存,我们自己开发了client端来使用它,另外如果用户有搜索请求,我们会用搜索引擎。Xapian是一个C++写的开源的搜索引擎,我们通过Web service去访问它。其他,我们还提供了另外的Web service接口响应用户的请求,比如要访问某个文件。spread是我们最近加了一部分,用户有的请求可以采用这样的异步服务.

数据库是这样的,两个MySQL做成一对,一个master ,一个 slave,根据应用划分,使得load不会太高。这个图上»¬的是两对,实际上有三对。还有一个slave,一方面作为备份,一方面用作数据挖掘,因为不能对线上的数据做直接操作。

静态部分

对于静态部分,我们也是用nginx,你注意到豆瓣现在有日记的贴图功能系统,用户可能上传很多图片,我们采用的方案是用了mogile FS ,这是一个分布式的文件系统,同时可以做备份,保持高可用性,可以提高很大的IO。关于application server,它都是用Python写的。我们是用的MVC方式,Controller我们用的是quixote ,它接受用户的请求,根据这个URL去找到Model的某个具体的函数来执行,它是一个dispatcher,当中会判断用户的权限等。然后再传给View,View根据模版进行渲染,形成网页。View的模版,我们以前是用的是PTL,PTL很高效,最近引用了mako,这是一个比较现代的开源的模版,用它写出的代码比较好维护,比PTL好维护一些.。同时,在使用mako的同时,我们的工程师做了很多加速的工作,现在mako的代码有很多是豆瓣的人写的。你如果注意过Python的Web开发框架的话,你会发现Python的有三个比较著名的框架,Django,Pylons,TurboGears,Pylons默认的模版就是Mako。

洪强宁-研讨会纪实

“中国互联网的OpenAPI”研讨会纪实

洪强宁:今天OpenAPI成为热门话题其实可以分两端看。一端是开发者,就像刚才黄晶提到的,程序员常常通过自己编写的软件去网页上获取内容,每当网页作出调整的时候,程序员编写的代码就需要进行相应的调整,通常还需要对文本进行分析,剥离那些并不需要的标签,这让开发者常常觉得很不愉快。另外一端是平台。今天的互联网平台和以前的不一样,通常这些网站都需要与合作伙伴进行数据交换。以豆瓣网为例,我们谈第一家合作伙伴的时候,为对方专门开发了一套数据访问的接口,随后不久,另外一家合作伙伴也加入了合作的阵营当中,我们不得不选择再重新开发一套数据访问的接口,但是等到第三

洪强宁

家合作伙伴出现的时候,我们选择了将访问的标准统一起来,这也为未来网站平台的发展提供了良好的先决条件。因此开放API对于个人用户和企业用户来说,是一个双赢,我们没有理由不去开放它。

洪强宁:其实OpenAPI给豆瓣带来了非常直接的好处,比较明显的就是带来了数量规模可观的用户群体。这一点从最早开放的豆瓣秀就可以看出来,很多人原来并不知道豆瓣这个网站,但不少我们用户在他们的博客上放置了豆瓣秀的Widget,用户觉得有意思,很快就过来注册了。这对于一个互联网公司获取用户的途径来说,明显是一种新的多元化。除了上述这种个人行为之外,通过OpenAPI提供商业合作的模式,也给豆瓣带来了可观的收益。就像刚才蒋涛提到的,通过开放API,很多原来我们的一些应用开发计划,在产品开发的优先级当中排名很低,以至于一年时间过去之后,它仍然摆在原来的位置。这时候,通过开放API的这种形式,一旦用户觉得这件事情非常有意义,我们就会鼓励他们协助豆瓣来完成这个产品的开发。同时,通过对帮助我们开发Widget的用户进行推广,从而达到双赢的目的。

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/1/31 1:45:34