博客系统架构对比分析

新浪博客系统架构(http://blog.sina.com.cn):

web服务器:nginx+apache

cgi:php

博客应用服务器:猜测是c++,memcachdb.

存储系统:mysql

发表最简单的一篇博客(内容在100字以内),花了2.77秒。

调用接口:http://control.blog.sina.com.cn/admin/article/article_post.php

对比腾讯qq空间(http://qzone.qq.com):

qzone的博客系统架构比较独特,

web服务器:公司开发的qzhttp(c++,epoll)

cgi:fastcgi(c++)

博客应用服务器:blogcontentserver(c++epoll),blogtitleserver(c++epoll),blogcounterserver(c++,select+100%内存cache)

存储系统:09以前是mysql,目前是公司开发的tdb(c++)

发表一篇简单日志:只花了172毫秒。

调用接口:http://b.qzone.qq.com/cgi-bin/blognew/blog_add

真是难以置信,一般网站,即使相同大小的静态内容,也很少能达到这个速度。

金股网的博客系统架构(http://sns.788111.com):

web服务器:apache2.x,计划将静态内容转至nginx

cgi:php

应用服务器:blogserver(c++,epoll,无内存cache)

存储系统:jcache+mysql

发表一篇简单日志:花了250毫秒

调用接口:http://jwblog.788111.com/ajax/blog_add_article.php

虽然接口里面还有很多未优化的逻辑,但总的来说是可以接受的。

=====================================================

总体架构上都差不多,cgi/fastcgi+appserver+cache+db

但在实现上有所不同。

可以参考的架构:

小规模博客系统:apache+cgi(php)+mysql(系统起步阶段)

中等规模:apache+cgi(php)+cppserver+mysql(系统发展阶段)

大规模系统:(apache+nginx)+cgi(php)+cppserver+cache+mysql(新浪模式)

超级规模:(自定义Httpserver)+fastcgi+cppserver+cache+selfdb(腾讯,google模式)

结果分析:

新浪博客:速度太慢了,无法接受

腾讯空间:速度非常快,超出预期

(但在体验上有个问题,动不动就要输入验证码,一分钟内操作不超过一次也出验证码,mygod!)

金股网博客:速度正常,还有进一步优化的空间

由于是在深圳做的测试,腾讯,金股网服务器均布在深圳,而新浪博客服务器应该主要集中在北京。

加上中国特色的网络环境,猜测主要时间花费在网络传输上了。

nginx已经在慢慢抢占apache的市场份额了,从静态领域到动态领域。

apache坚持稳定第一的原则,在互联网公司普遍缺钱的情况下似乎行不通。

nginx刚好相反,坚持性能第一的原则,更合管理层与技术高手的口味:花最少的钱,做最多的事。

c++

相关推荐