SlideShare a Scribd company logo
1 of 23
Download to read offline
Twitter架构剖析,[object Object],夏松江,[object Object],2010-06,[object Object]
Twitter奇迹,[object Object],域名:www.twitter.com,[object Object],一个社交和微博的服务网站;,[object Object],埃文·威廉姆斯(Evan Williams)与2006年创建;,[object Object],Twitter用户数过亿;(2010-4-15),[object Object],Twitter被收录在英文字典中;,[object Object]
Twitter奇迹,[object Object],简单的产品模式—140个字符模式,[object Object],允许用户广播或发送跟随者(followers)140个字符短信;,[object Object],最初是应用在手机短信,后来发展到Web、第三方App应用;,[object Object],完全免费;,[object Object]
Twitter的成功,[object Object],开放API,[object Object],大部分流量来自第三方API,[object Object],简单,[object Object],操作太简单了,[object Object],实时性,[object Object],有几次世界性事件比任何媒体都快,[object Object],病毒性传播,[object Object],SNS关系,[object Object]
因为简单,所以复杂,[object Object],背后一定有一个非常强大的架构!,[object Object]
进入Twitter架构,[object Object],一些架构数据,[object Object],Twitter目前有105,779,710注册用户数;,[object Object],Twitter现在每天有300,000的新注册用户数;,[object Object],每月有180万独立访问用户数;,[object Object],75%的流量来自Twitter.com网以外的网站;,[object Object],每天通过API有30亿请求总次数;,[object Object],Twitter用户每天平均有5500万次tweet;,[object Object],37%的活跃用户为手机用户;,[object Object],超过一半(60%)的tweet来自第三方应用;,[object Object],Twitter 2010 Chirp开发者大会,[object Object]
核心业务,[object Object],Following和Be followed,[object Object],1. 为每一个注册用户订制一个Be-followed的表,主要内容是每一个follower的ID。同时,也订制一个Following的表,主要内容是每一个following作者的ID。,[object Object],2. 当用户打开自己的个人空间时,Twitter先查阅Following表,找到所有following的作者的ID。然后去数据库读取每一位作者最近写的短信。汇总后按时间顺序显示在用户的个人主页上。,[object Object],3. 当用户写了一则短信时,Twitter先查阅Be-followed表,找到所有followers的IDs。然后逐个更新那些followers的主页。,[object Object],如果有follower正在阅读他的Twitter个人主页,主页里暗含的JavaScript会自动每隔几十秒,访问一下Twitter服务器,检查正在看的这个个人主页是否有更新。如果有更新,立刻下载新的主页内容。这样follower就能读到最新发表的短信了。,[object Object]
平台构成—概述,[object Object],手机,[object Object],Twitter.com,[object Object],第三方,[object Object],Twitter平台,[object Object]
平台构成—工具,[object Object],Ruby on Rails:Web应用程序的框架,[object Object],Erlang:通用的面向并发的编程语言,开源  http://www.erlang.org/,[object Object],C,[object Object],Java,[object Object],Scala,[object Object],Google Analytics,[object Object],AWStats:实时日志分析统计系统 http://awstats.sourceforge.net/,[object Object]
平台构成—前端,[object Object],Rails,[object Object],前台页面展示,[object Object],数据库查询,[object Object],缓存组合,[object Object]
平台构成—中间件,[object Object],Memcached,[object Object],Starling:Ruby开发的轻量级的消息队列,[object Object],Varnish:高性能开源HTTP加速器(取代Squid?),[object Object],Kestrel:scala编写的消息中间件 http://github.com/robey/kestrel,[object Object],Comet server:Comet 是一种新的 Web 应用架构。基于这种架构开发的应用中,服务器端会主动以异步的方式向客户端程序推送数据,而不需要客户端显式的发出请求。,[object Object],Memcached客户端--libmemcached,[object Object]
平台构成—服务器,[object Object],MySQL,[object Object],Mongrel:Ruby的HTTP服务器,专为rails应用;http://rubyforge.org/projects/mongrel/,[object Object],Munin:服务端监控程序 http://munin-monitoring.org/,[object Object],Nagios:网络监控系统 http://www.nagios.org/,[object Object]
架构思想,[object Object],发布消息,[object Object],获取消息,[object Object],Mongrel Rails Server,[object Object],Mongrel Rails Server,[object Object],40%hits,[object Object],Kestrel,[object Object],(MQ),[object Object],缓存聚合器,[object Object],Page Cache,[object Object],Items/user,[object Object],(Varnish),[object Object],95%hits,[object Object],99%hits,[object Object],95%hits,[object Object],Vector Cache,[object Object],Tweet/user,[object Object],Fragment Cache,[object Object],Items/tweet,[object Object],Row Cache,[object Object],Items/user,[object Object],MySql,[object Object]
架构1—缓存,[object Object],Web2.0网站所有的一切都是运行在内存中,[object Object]
Cache通常架构,[object Object]
架构1—缓存,[object Object],[object Object]
只有API有着一个页面缓存,当每次从一个用户那里来了一个tweet时就会失效,而应用的其它部分都是无缓存的;,[object Object]
架构1—缓存,[object Object]
架构1,[object Object],用三层结构表示,[object Object]
架构2—消息队列,[object Object],发布Tweet后,放到队列中,并转发到各个Follower中去;,[object Object],Twitter的MQ很简单:基于Memcached的协议,job之间是无序的,服务器之间没有共享的状态,所有的东西都保存在RAM里,并且是事务性的。,[object Object],最初Starling,因为Ruby的GC机制,后来改为Scala编写的Kestrel;,[object Object],做一个格式的转换桥,转换成其他设备所需要的格式,并负责转发;,[object Object]
架构3--Memcached客户端,[object Object],Libmemcached,[object Object],Memcached客户端的优化目的是试图优化集群负载;,[object Object],持续一年的碎片缓存优化带来了50倍的每秒页面请求服务增加;,[object Object]
Twitter架构剖析 语录
来自架构师的建议,[object Object],10万用户级别,[object Object],单服务器,前端、后端、cache、db在一起。,[object Object],百万级,[object Object],db和cache单独部署服务器,db或按业务进行拆分(sharding),[object Object],cache或使用一致性hash扩展。,[object Object],前端后端还是在一起,但是根据业务拆分,每个业务可分配不同数量的服务器,[object Object],千万级,[object Object],开始重视架构设计,有专门技术架构师,[object Object],需跨机房部署,前端在远程增加反向代理加速,数据库在异地机房使用slave数据库副本,[object Object],后端拆分出来,系统内部需要远程调用,内部需远程调用协议。,[object Object],亿级,[object Object],架构更细分,或增加数据架构师,cache架构师,分布式架构师,[object Object],数据库sharding碰到烦恼,开始考虑分布式数据服务,[object Object],数据访问需要根据业务特点细分。,[object Object],开发、运维、测量、调优具备有自己的专有工具。,[object Object],所有服务需要地理多机房分布,具备IDC容灾设计。,[object Object],服务可降级,[object Object],--Tim Yang,[object Object]

More Related Content

Viewers also liked (20)

Familiae Romanae Vocabula (III)
Familiae Romanae Vocabula (III)Familiae Romanae Vocabula (III)
Familiae Romanae Vocabula (III)
 
Capitulum i
Capitulum iCapitulum i
Capitulum i
 
Familiae Romanae Vocabula (XI)
Familiae Romanae Vocabula (XI)Familiae Romanae Vocabula (XI)
Familiae Romanae Vocabula (XI)
 
Pensum B. Cap. VI
Pensum B. Cap. VIPensum B. Cap. VI
Pensum B. Cap. VI
 
Exercitia Capituli VI
Exercitia Capituli VIExercitia Capituli VI
Exercitia Capituli VI
 
Familiae Romanae Vocabula (IX)
Familiae Romanae Vocabula (IX)Familiae Romanae Vocabula (IX)
Familiae Romanae Vocabula (IX)
 
Familiae Romanae Vocabula (X)
Familiae Romanae Vocabula (X)Familiae Romanae Vocabula (X)
Familiae Romanae Vocabula (X)
 
Exercitia cap. xi
Exercitia cap. xiExercitia cap. xi
Exercitia cap. xi
 
Capitulum ii
Capitulum iiCapitulum ii
Capitulum ii
 
Taberna Albini
Taberna AlbiniTaberna Albini
Taberna Albini
 
Exercitia cap x
Exercitia cap xExercitia cap x
Exercitia cap x
 
Exercitia Cap. v
Exercitia Cap. vExercitia Cap. v
Exercitia Cap. v
 
Exercitia cap ix
Exercitia cap ixExercitia cap ix
Exercitia cap ix
 
Vocabula cap. I et II
Vocabula cap. I et IIVocabula cap. I et II
Vocabula cap. I et II
 
Vocabula cap. viii
Vocabula cap. viiiVocabula cap. viii
Vocabula cap. viii
 
Vocabula cap. ix
Vocabula cap. ixVocabula cap. ix
Vocabula cap. ix
 
Untitled 33
Untitled 33Untitled 33
Untitled 33
 
Cap 9 gramm
Cap 9 grammCap 9 gramm
Cap 9 gramm
 
Pensa cap 8
Pensa cap 8Pensa cap 8
Pensa cap 8
 
Cap 7 gramm
Cap 7 grammCap 7 gramm
Cap 7 gramm
 

Similar to Twitter架构剖析 语录

第六次Seminar:微博在教育中的应用
第六次Seminar:微博在教育中的应用第六次Seminar:微博在教育中的应用
第六次Seminar:微博在教育中的应用E-learning R&D Group
 
Twitter的传播及SMM案例
Twitter的传播及SMM案例Twitter的传播及SMM案例
Twitter的传播及SMM案例guest982d2dd3
 
Twitter的传播及smm案例
Twitter的传播及smm案例Twitter的传播及smm案例
Twitter的传播及smm案例ppen
 
Twitter的传播及SMM案例
Twitter的传播及SMM案例Twitter的传播及SMM案例
Twitter的传播及SMM案例top idea
 
Twitter的传播及smm案例
Twitter的传播及smm案例Twitter的传播及smm案例
Twitter的传播及smm案例Yao Guang
 
门户类成功案例(腾讯微博).pptx
门户类成功案例(腾讯微博).pptx门户类成功案例(腾讯微博).pptx
门户类成功案例(腾讯微博).pptxcubead
 
2010全球微博排行榜
2010全球微博排行榜2010全球微博排行榜
2010全球微博排行榜Wang Feng
 
第12期极客活动:新浪-新浪微博的未来
第12期极客活动:新浪-新浪微博的未来第12期极客活动:新浪-新浪微博的未来
第12期极客活动:新浪-新浪微博的未来geekparknet
 
Twitter新手使用教程
Twitter新手使用教程Twitter新手使用教程
Twitter新手使用教程gandli
 
中国社交游戏年度报告 Cecilia
中国社交游戏年度报告 Cecilia中国社交游戏年度报告 Cecilia
中国社交游戏年度报告 CeciliaAppLeap Inc.
 
中国社交游戏年度报告 Cecilia
中国社交游戏年度报告 Cecilia中国社交游戏年度报告 Cecilia
中国社交游戏年度报告 CeciliaAppLeap Inc.
 
中国社交游戏年度报告 Cecilia
中国社交游戏年度报告 Cecilia中国社交游戏年度报告 Cecilia
中国社交游戏年度报告 CeciliaAppLeap Inc.
 

Similar to Twitter架构剖析 语录 (12)

第六次Seminar:微博在教育中的应用
第六次Seminar:微博在教育中的应用第六次Seminar:微博在教育中的应用
第六次Seminar:微博在教育中的应用
 
Twitter的传播及SMM案例
Twitter的传播及SMM案例Twitter的传播及SMM案例
Twitter的传播及SMM案例
 
Twitter的传播及smm案例
Twitter的传播及smm案例Twitter的传播及smm案例
Twitter的传播及smm案例
 
Twitter的传播及SMM案例
Twitter的传播及SMM案例Twitter的传播及SMM案例
Twitter的传播及SMM案例
 
Twitter的传播及smm案例
Twitter的传播及smm案例Twitter的传播及smm案例
Twitter的传播及smm案例
 
门户类成功案例(腾讯微博).pptx
门户类成功案例(腾讯微博).pptx门户类成功案例(腾讯微博).pptx
门户类成功案例(腾讯微博).pptx
 
2010全球微博排行榜
2010全球微博排行榜2010全球微博排行榜
2010全球微博排行榜
 
第12期极客活动:新浪-新浪微博的未来
第12期极客活动:新浪-新浪微博的未来第12期极客活动:新浪-新浪微博的未来
第12期极客活动:新浪-新浪微博的未来
 
Twitter新手使用教程
Twitter新手使用教程Twitter新手使用教程
Twitter新手使用教程
 
中国社交游戏年度报告 Cecilia
中国社交游戏年度报告 Cecilia中国社交游戏年度报告 Cecilia
中国社交游戏年度报告 Cecilia
 
中国社交游戏年度报告 Cecilia
中国社交游戏年度报告 Cecilia中国社交游戏年度报告 Cecilia
中国社交游戏年度报告 Cecilia
 
中国社交游戏年度报告 Cecilia
中国社交游戏年度报告 Cecilia中国社交游戏年度报告 Cecilia
中国社交游戏年度报告 Cecilia
 

Twitter架构剖析 语录

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 23.