豆瓣网技术架构的 发展历程(一)

豆瓣简介:

•2005年3月上线

•以分享和发现为核心的社区

•读书、电影、音乐、小组、同城、九点

•我的豆瓣、友邻

 一些数据:

•2.8M注册用户,约1/4活跃用户
•千万级非注册用户
•20M动态请求/天,峰值500~600/sec
•23台普通PC服务器(1U*15/2U*8)

•12台提供线上服务
•38G memcached

单服务器:

• 单台1U服务器 (frodo)
• 单核AMD Athlon 64 1.8GHz
• 1G内存,160G SATA*2
• Gentoo Linux
• MySQL 5
• Quixote (a Python web framework)
• Lighttpd + SCGI (shire)
• Memcached (!)

                                                Gentoo Linux

•容易维护
•emerge mysql
•ebuild 便于管理 patch
•只安装需要的东西
•安全性
•GLSA(Gentoo Linux Security Advisories)

                                                MySQL

•The world’s most popular open source database
•写少读多/写多读少 ==> MyISAM
•读写并发高 ==> InnoDB
•Replicate for backup

                                              Python

•开发迅速
•Battery Included
•第三方库成熟
•社区成长中
•CPUG: http://python.cn/

                                           Quixote


简单,轻量,易于实现REST风格的URL

当时还没有Django, TurboGears, Pylons这些选择,只有一
个笨重的ZOPE

http://www.douban.com/subject/1000001
# luz/subject/__init__.py
def _q_lookup(request, name):
subject = get_subject(name)
return lambda req: subject_ui(req, subject)
# luz/subject/subject_ui.ptl
def subject_ui [html] (request, subject):
site_header(request)
“<h1>%s</h1>” % subject.title
site_footer(request)

                                                   Lighttpd

•很好的动态和静态性能
•原生SCGI支持
•SCGI: 一个简化版本的FastCGI,由
Quixote开发者开发
•所有的请求都通过80端口的lighttpd进程
分发,动态内容走SCGI到localhost上的
Quixote进程。

                                                     Memcache

• 从上线起就在使用,有效减轻MySQL负担
• 对libmemcache做了python封装(使用Pyrex),性能是
纯python版的3x+
def get_subject(subject_id):
subject = mc.get(‘s:’+subject_id)
if subject is None:
store.farm.execute(“select xxx, xxx from subject where id=%s”,
subject_id)
subject = Subject(*store.farm.fetchone())
mc.set(‘s:’+subject_id, subject)
return subject

                                                         问题出现

•1.2M动态请求/天
•磁盘IO成为瓶颈
•需要寻找新机房

                                                           解决方案

•购买两台1U服务器
•pippin 和 meriadoc (后改名merry)
•双核, 4G内存,250G SATA*3
•一台作为应用服务器,一台作为数据库服务器
•迁移到双线双IP机房,使用DNS解析不同网段
IP -_-b
•开始多人协作开发,frodo做为开发用机
(subversion, trac, etc...)

                                   几点发现

•数据库的内存分配对性能影响重大
•innodb_buffer_pool_size
•磁盘随机寻道速度比吞吐量更重要
•网上找来的IP段分布很不靠谱

时间: 2024-10-01 12:28:15

豆瓣网技术架构的 发展历程(一)的相关文章

豆瓣首席架构师洪强宁 谈豆瓣网技术架构

概要如何应对高并发.大访问量?如何保证数据的安全性以及数据库大吞吐量?在海量数据下,如何进行数据表变更?DoubanFS以及DoubanDB的特点以及技术实现?在QConBeijing2009期间,InfoQ中文站有幸采访了洪强宁,探讨了相关话题. 个人简介洪强宁,2002年毕业于清华大学,现任北京豆瓣互动科技有限公司首席架构师.洪强宁和他带领的技术团队致力于用技术改善人们的文化和生活品质,在网站架构.性能.可伸缩性上进行深入研究.豆瓣网曾获软件中国2006年度最佳技术应用网站. 关于会议QCo

沪江网获得巨额投资,发展历程可视作行业变迁缩影

君联资本合伙人 靳文戟 沪江网获得巨额投资,是投资界的合理判断.从2001年沪江网前身"沪江语林网"诞生,到2006年开始公司化运作,再转型定位做"互联网学习平台",沪江网作为在线教育行业的"老将",其发展历程可看做是行业的变迁缩影. 沪江网的发展历程,基本与中国互联网行业的发展路径"保持同步".2001年语言培训市场繁荣,当时流行的 BBS 形态催生了沪江网的前身沪江语林网: 随着BBS 局限性凸显,沪江网向门户形态转型,开

一起谈.NET技术,梦想创造可能——盘点微软 .NET 技术八年发展历程

文 / 刘如鸿 2000年对于微软是颇有意思的一年,一方面终于迈入了21世纪,担心许久的千年虫问题也没有预想中的那样大面积爆发,通过Windows 95和Windows 98的成功,微软在桌面电脑市场取得了绝对垄断的地位.虽然官司不断,但通过IE捆绑策略也终于彻底打败了傲慢的Netscape,搭上了互联网班车.而Windows 2000的发布也结束了Windows 98和Windows NT两个平台互不兼容.互相掐架的问题,在全新的NT 5.0内核上,服务器和客户端操作系统终于得到了整合.至于办

梦想创造可能盘点微软 .NET 技术八年发展历程

文 / 刘如鸿 2000年对于微软是颇有意思的一年,一方面终于迈入了21世纪,担心许久的千年虫问题也没有预想中的那样大面积爆发,通过Windows 95和Windows 98的成功,微软在桌面电脑市场取得了绝对垄断的地位.虽然官司不断,但通过IE捆绑策略也终于彻底打败了傲慢的Netscape,搭上了互联网班车.而Windows 2000的发布也结束了Windows 98和Windows NT两个平台互不兼容.互相掐架的问题,在全新的NT 5.0内核上,服务器和客户端操作系统终于得到了整合.至于办

豆瓣网坚持做文艺范儿“慢公司”而发展不慢

[硅谷网8月18日讯]现如今提起豆瓣网,相信大多数的人都会侃侃而谈,因为在这个圈子里它确实已经赢得了很多人的尊敬.豆瓣这家Web 2.0网站,是一个集评论(书评.影评.乐评).BLOG.交友.收藏等多种服务功能于一体的新型社区网络.这朵正式绽放于2005年3月的互联网奇葩,原有的盈利途径主要依靠用户点击量和电子商务网站相关产品的购买额度. 豆瓣网一向被贴有文艺范的"慢公司"标签,而就在昨天这个"慢公司"披露的部分运营数据却让大家的小心脏加速了一把: "网站

一、大型网站技术架构演化

大型网站系统的特点 1.高并发,大流量 2.高可用:7*24小时不间断服务,不宕机 3.海量数据储存及管理 4.网络复杂 5.安全性 6.易扩展,可伸缩:需求快速变更,发布频繁 7.渐进式发展:脸谱网是宿舍,谷歌是斯坦福大学实验室,淘宝是马云家 一句话,高可用,高性能,易扩展,可伸缩且安全的网站. 大型网站架构演化发展历程 1.初始阶段     单机服务器:应用程序+数据库+文件都在一台服务器上. 2.应用服务和数据服务分离     应用服务器,文件服务器和数据库服务器. 中间通过通信的是:HT

豆瓣网解彦博:好钢用在刀刃上

[CSDN报道]7月9日下午,CSDN TUP第十一期"架构师沙龙--互联网研发之道"在中国科学院计算技术研究所一层报告厅举行,本次活动邀请了业内研发实力很强的腾讯和豆瓣的嘉宾来分享互联网产品研发经验,业界超过300名技术管理者来到了现场.腾讯搜索运营部研发管理总监黎娟,腾讯R&D项目总监王晶,腾讯宠物客户端主程序.高级软件工程师黄朝兴,豆瓣网技术总监耿新跃,豆瓣网QA主管解彦博发表了精彩演讲. 豆瓣网QA主管解彦博 以下是豆瓣网QA主管解彦博的演讲实录(仅供参考): 感谢大家

豆瓣网QA主管解彦博演讲实录:好钢用在刀刃上

中介交易 SEO诊断 淘宝客 云主机 技术大厅 [CSDN报道]7月9日下午,CSDN TUP第十一期"架构师沙龙--互联网研发之道"在中国科学院计算技术研究所一层报告厅举行,本次活动邀请了业内研发实力很强的腾讯和豆瓣的嘉宾来分享互联网产品研发经验,业界超过300名技术管理者来到了现场.腾讯搜索运营部研发管理总监黎娟,腾讯R&D项目总监王晶,腾讯宠物客户端主程序.高级软件工程师黄朝兴,豆瓣网技术总监耿新跃,豆瓣网QA主管解彦博发表了精彩演讲. 豆瓣网QA主管解彦博 以下是豆瓣网

【TUP第11期】豆瓣网解彦博:好钢用在刀刃上

[CSDN报道]7月9日下午,CSDN TUP第十一期"架构师沙龙--互联网研发之道"在中国科学院计算技术研究所一层报告厅举行,本次活动邀请了业内研发实力很强的腾讯和豆瓣的嘉宾来分享互联网产品研发经验,业界超过300名技术管理者来到了现场.腾讯搜索运营部研发管理总监黎娟,腾讯R&D项目总监王晶,腾讯宠物客户端主程序.高级软件工程师黄朝兴,豆瓣网技术总监耿新跃,豆瓣网QA主管解彦博发表了精彩演讲. 豆瓣网QA主管解彦博 以下是豆瓣网QA主管解彦博的演讲实录(仅供参考): 感谢大家