自定义搜索
上一篇:为袁腾飞老师写的引用文献
下一篇:他是谁?;
读“解剖Twitter:Twitter系统架构设计分析”的笔记
米娅 2010年5月25日 17:47:58

原文:解剖Twitter:Twitter系统架构设计分析

看这篇文章很有收获,大致归纳一下:

1,“如果有follower正在阅读他的Twitter个人主页,主页里暗含的JavaScript会自动每隔几十秒,访问一下Twitter服务器,检查正在看的这个个人主页是否有更新。如果有更新,立刻下载新的主页内容。这样follower就能读到最新发表的短信了。”

2,Twitter成功的重要原因之一,就是速度快。“Twitter 工程师认为,一个用户体验良好的网站,当一个用户请求到达以后,应该在平均500ms以内完成回应。而Twitter的理想,是达到200ms- 300ms的反应速度[17]。因此在网站架构上,Twitter大规模地,多层次多方式地使用缓存。”

3,Twitter采用三层架构,“逻辑层 (Logic Tier)用的工具是Mongrel Rails Server,利用Rails现成的模块,降低开发的工作量。”

4,Twitter的各个请求的实现用到了队列。“队列的实现方式有多种,例如Apache Mina就可以用来做队列。但是Twitter团队自己动手实现了一个队列,Kestrel。”......“Kestrel和Mina这些“重量级”的队列,意义在于支持联络多台机器的,分布式的队列。” 


2楼 2010年5月25日 18:07:53 米娅

5, Twitter工程师们在解决API通道的缓存问题使用的是MemCached ,在处理Web通道的缓存问题时使用的是开源项目Varnish

6, “Apache Web Server的主要任务,是解析HTTP,以及分发任务。不同的Mongrel Rails Server负责不同的任务,但是绝大多数Mongrel Rails Server,都要与Vector Cache和Row Cache(楼主注:API缓存)联系,读取数据。Rails Server如何与MemCached联系呢?Twitter工程师们自行开发了一个Rails插件(Gem),称为CacheMoney。”

7,试验显示,Apache能过容纳4,000个并发连接。Yaws能够容纳80,000以上的并发连接,但Yaws使用Erlang语言写的。

8,变买为租解决Twitter流量的波动问题;

9,“Twitter完成整个业务流程的平均时间是500ms,甚至能够提高到200-300ms,说明在Twitter分布式系统中,事件驱动的设计是成功”。  

3楼 2010年5月25日 18:23:01 米娅

10, 为了提高消息队列的垃圾回收(Garbage Collection)的效率,Twitter用Kestrel取代了Ruby,因为Scala运行在JVM上,因此有更优化的垃圾回收手段。

11,Twitter可能用“API Server”代替Mongrel,因为据说它的速度比Apache+Mongrel组和快4倍。“Apache+Mongrel组合,每秒能够处理139个请求,而“API Server” 每秒钟能够处理大约550个请求。”

第1页 共1页
相关链接
1. 招聘测试:用jersey获得twitter网页,获得有最大共有字符串的两条twitts
2. 用PHP编写Twitter客户端笔记(4):用户登录验证(F)
3. 用PHP编写Twitter客户端笔记(3):如何用curl传递浏览器的语言信息(C)
4. 用PHP编写Twitter客户端笔记(2):Service Provider Grants Request Token
5. 用PHP编写Twitter客户端笔记(1):Consumer Requests Request Token
6. 如何用twitter账号赚钱
7. Twitter传闻:不少于一百辆的运兵卡车... ...
8. 把手机绑定到Twitter上,说不准什么时候能让你化险为夷
9. 获奖精彩Twitter推特儿、新浪围脖儿作品展
10. 免翻墙实现Twitter的OAUTH登陆认证,提供代码下载
11. 在Twitter应用中使用OAuth(入门级)
12. 编写一个简单的twitter API程序
13. 如何方便的读推友(Twitter)的全部推(Tweets)
14. 开源软件“推特中文圈”,先围观一下(Twitter)
15. 关于玉树地震的几个推(Twitter)
16. 复制一些推与不能用或不知道推特(Twitter)的分享