1. Web网站一般会有很多对IO的操作,比如对数据库的访问,对硬盘的访问响应用户的请求,80%,90%你的时间都花在IO上,语言的速度,相对而言,不是那么重要。
2. 在豆瓣上所有的html都是动态内容,图片都是静态内容。分成两个Web 服务可以做不同的调优。对动态内容,我们用的是nginx和lighttpd的混合,nginx做负载的平衡,lighttpd通过 SCGi 与application server相连,application server是基于 quixote这个框架写的。
3. application server拿到用户的请求,分析用户的url,并且利用外部的资源,比如数据库,组合成一个html,返回。从数据库存取会比较慢,数据库有大量的 IO,我们使用cache,我们使用的是Memcached,这是一个分布式的内存的cache,比如你可以用很多机器,每个机器有两个G的内存,我们自己开发了client端来使用它,另外如果用户有搜索请求,我们会用搜索引擎。Xapian是一个C++写的开源的搜索引擎,我们通过Web service去访问它。其他,我们还提供了另外的Web service接口响应用户的请求,比如要访问某个文件。spread是我们最近加了一部分,用户有的请求可以采用这样的异步服务。
4. 数据库是这样的,两个MySQL做成一对,一个master ,一个 slave,根据应用划分,使得load不会太高。这个图上»¬的是两对,实际上有三对。还有一个slave,一方面作为备份,一方面用作数据挖掘,因为不能对线上的数据做直接操作。
5. 对于静态部分,我们也是用nginx,你注意到豆瓣现在有日记的贴图功能系统,用户可能上传很多图片,我们采用的方案是用了mogile FS ,这是一个分布式的文件系统,同时可以做备份,保持高可用性,可以提高很大的IO。
6. 关于application server,它都是用Python写的。我们是用的MVC方式,Controller我们用的是quixote ,它接受用户的请求,根据这个URL去找到Model的某个具体的函数来执行,它是一个dispatcher,当中会判断用户的权限等。然后再传给 View,View根据模版进行渲染,形成网页。View的模版,我们以前是用的是PTL,PTL很高效,最近引用了mako,这是一个比较现代的开源的模版,用它写出的代码比较好维护,比PTL好维护一些.。同时,在使用mako的同时,我们的工程师做了很多加速的工作,现在mako的代码有很多是豆瓣的人写的。
7. 与数据库进行链接,我们一个很轻量级的与数据库进行链接,这也是一个开源项目,SQL Farm Manager。这个Web service,豆瓣中有很多用的都是Web service。
8. Web2.0用户的反复的操作非常多,你需要一个非常流畅的体现。这需要一些技术来实现,比如Ajax;豆瓣花了很多钱很多精力,来提高性能,比如买好的机器,使用Gentoo Linux,为什么使用Gentoo Linux,因为它方便调优。还有,大量的使用cache。在数据库调优方面,我们也花了很大的精力。另一方面,Web 2,0是用户提供数据的,用户有很多写操作。这样很多1.0优化方法在2.0中行不通。豆瓣在数据库上用的是分库的方式。除此之外我们还尝试了一些其他的方法。
9. 豆瓣与天涯这样的BBS不同还在于,它首先有一个物的概念,比如书,音乐,和电影。
10. 豆瓣更关心的是人群,就是对同一话题和事物有兴趣的人群,而不是帖子,这与传统的BBS确实有一些区别。
分享到:
相关推荐
洪强宁,作为豆瓣的首席架构师,曾在2010年的QCon北京大会上分享了豆瓣网的技术内幕。 1. **用户规模与访问量** - 当时,豆瓣网的注册用户已接近300万,加上非注册用户,日访问量达到约两千万。这种规模体现了豆瓣...
微信小程序仿豆瓣电影源码微信小程序仿豆瓣电影源码微信小程序仿豆瓣电影源码微信小程序仿豆瓣电影源码微信小程序仿豆瓣电影源码微信小程序仿豆瓣电影源码微信小程序仿豆瓣电影源码微信小程序仿豆瓣电影源码微信小...
微信小程序 豆瓣电影 (源码)微信小程序 豆瓣电影 (源码)微信小程序 豆瓣电影 (源码)微信小程序 豆瓣电影 (源码)微信小程序 豆瓣电影 (源码)微信小程序 豆瓣电影 (源码)微信小程序 豆瓣电影 (源码)微信小程序 豆瓣...
开源技术大会2014上午主题演讲,豆瓣技术总监清风演讲《豆瓣Code开源历程》
PHP仿豆瓣小组 PHP仿豆瓣小组 PHP仿豆瓣小组 PHP仿豆瓣小组 PHP仿豆瓣小组 PHP仿豆瓣小组 PHP仿豆瓣小组 PHP仿豆瓣小组 PHP仿豆瓣小组 PHP仿豆瓣小组 PHP仿豆瓣小组 PHP仿豆瓣小组 PHP仿豆瓣小组 PHP仿...
小程序源码 豆瓣电影 (代码+截图)小程序源码 豆瓣电影 (代码+截图)小程序源码 豆瓣电影 (代码+截图)小程序源码 豆瓣电影 (代码+截图)小程序源码 豆瓣电影 (代码+截图)小程序源码 豆瓣电影 (代码+截图)小程序源码 ...
微信小程序demo:豆瓣(源代码+截图)微信小程序demo:豆瓣(源代码+截图)微信小程序demo:豆瓣(源代码+截图)微信小程序demo:豆瓣(源代码+截图)微信小程序demo:豆瓣(源代码+截图)微信小程序demo:豆瓣(源代码+截图)...
豆瓣镜像源
基于微信小程序,构建的豆瓣电影项目,接口访问来自豆瓣api,目前功能有 搜索功能 下拉刷新 上拉加载 功能说明 接口访问来自豆瓣api,目前功能有 搜索功能 下拉刷新 上拉加载 代码说明 部分采用es6语言,组件化,...
微信小程序——豆瓣图书(截图+源码).zip 微信小程序——豆瓣图书(截图+源码).zip 微信小程序——豆瓣图书(截图+源码).zip 微信小程序——豆瓣图书(截图+源码).zip 微信小程序——豆瓣图书(截图+源码).zip ...
本教程将探讨如何利用动态IP池和cookie来爬取豆瓣网站上的影评数据,以实现更高效、稳定的数据抓取。 首先,我们需要了解动态IP池的概念。动态IP池是一个能够提供大量不同IP地址的系统,它在爬虫工作时可以频繁更换...
电影,电视剧,综艺等影视资源豆瓣ID,部分链接需要登录豆瓣才能打开哦~! 共计8W多条,适用于豆瓣信息采集!
【标题】:“豆瓣的相关资料” 【内容详解】 豆瓣(Douban)是中国互联网上一个集书影音评分、评论和分享的平台,它以其独特的社区氛围和用户参与度著称。作为一个全面了解和探讨豆瓣的起点,我们可以从以下几个...
【豆瓣电影源码】微信小程序开发详解 在移动互联网时代,微信小程序因其无需下载、即用即走的特点,成为开发者和用户青睐的应用形式。本篇文章将深入探讨如何使用微信小程序框架,结合“豆瓣电影”这一具体案例,...
微信小程序——豆瓣电影(截图+源码).zip 微信小程序——豆瓣电影(截图+源码).zip 微信小程序——豆瓣电影(截图+源码).zip 微信小程序——豆瓣电影(截图+源码).zip 微信小程序——豆瓣电影(截图+源码).zip ...
**WordPress豆瓣电影图书分享插件详解** WordPress是一个广泛使用的开源内容管理系统,其强大的扩展性和丰富的插件库使得网站开发者能够轻松实现各种功能。"WordPress豆瓣电影、图书、音乐和相册展示插件"是一个专...
豆瓣电影短评数据集,20年左右的数据,可以用来研究,80M左右 数据存储使用的是SQlite数据库。使用起来应该比较方便。要浏览的话下个可视化软件就行,用的是SQLiteStudio。 爬的豆瓣电影短评。目前豆瓣似乎对一部...
豆瓣API是豆瓣平台提供的一种服务,允许开发者通过编程方式获取豆瓣网站上的各种数据,如电影、书籍、音乐等资源的信息,用户评论,评分等。这篇内容将深入探讨豆瓣API的测试及其重要性。 首先,我们来理解什么是...
豆瓣用户每天都在对“看过”的电影进行“很差”到“力荐”的评价,豆瓣根据每部影片看过的人数以及该影片所得的评价等综合数据,通过算法分析产生豆瓣电影 Top 250。 为了分析电影产业的发展趋势,本次实验需要对...
小程序源码 豆瓣图书 (代码+截图)小程序源码 豆瓣图书 (代码+截图)小程序源码 豆瓣图书 (代码+截图)小程序源码 豆瓣图书 (代码+截图)小程序源码 豆瓣图书 (代码+截图)小程序源码 豆瓣图书 (代码+截图)小程序源码 ...