文档介绍:豆瓣网技术架构的
发展历程
Text
洪强宁
hongqn@
Monday, March 23,
2009
豆瓣网简介
• 2005年3月上线
•以分享和发现为
核心的社区
•读书、电影、音
乐、小组、同
城、九点
•我的豆瓣、友邻
Monday, March 23,
2009
一些数据
• ,约1/4活跃用户
•千万级非注册用户
• 20M动态请求/天,峰值500~600/sec
• 23台普通PC服务器(1U*15/2U*8)
• 12台提供线上服务
• 38G memcached
Monday, March 23,
2009
单服务器
•单台1U服务器(frodo)
•单核AMD Athlon 64
• 1G内存,160G SATA*2
• Gentoo Linux
• MySQL 5
• Quixote (a Python web framework)
• Lighttpd + SCGI (shire)
• Memcached (!)
Monday, March 23,
2009
Lighttpd
SCGI
App
FS
MySQL Memcache Static Files
Monday, March 23,
2009
Gentoo Linux
•容易维护
• emerge mysql
• ebuild 便于管理 patch
•只安装需要的东西
•安全性
• GLSA(Gentoo Linux Security Advisories)
Monday, March 23,
2009
MySQL
• The world’s most popular open source database
•写少读多/写多读少==> MyISAM
•读写并发高==> InnoDB
• Replicate for backup
Monday, March 23,
2009
Python
•开发迅速
• Battery Included
•第三方库成熟
•社区成长中
• CPUG: /
Monday, March 23,
2009
Quixote
•简单,轻量,易于实现REST风格的URL
•当时还没有Django, TurboGears, Pylons这些选择,只有一
个笨重的ZOPE
• ject/1000001
# luz/subject/
def _q_lookup(request, name):
subject = get_subject(name)
return lambda req: subject_ui(req, subject)
# luz/subject/
def subject_ui [html] (request, subject):
site_header(request)
“<h1>%s</h1>”%
site_footer(request)
Monday, March 23,
2009
Lighttpd
•很好的动态和静态性能
•原生SCGI支持
• SCGI: 一个简化版本的FastCGI,由
Quixote开发者开发
•所有的请求都通过80端口的lighttpd进程
分发,动态内容走SCGI到localhost上的
Quixote进程。
Monday, March 23,
2009