说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

磨剑三载,且看从容应对14.3万TPS的Twitter是怎样炼成的!

HTML文档下载 WORD文档下载 PDF文档下载
三年前的世界杯上,Twitter的服务随裁判哨声跌宕起伏;三年后的今天,Twitter的服务已经可以从容应对毁灭“天空之城”的魔咒,并创下每秒143199次tweet的新峰值。

记得刚接触宫崎骏老爷子的作品是在高中时代,然而当时正值青春年少外加深受灌篮高手等动画“荼毒”,对宫老爷子的《千与千寻》、《龙猫》、《魔女宅急便》、《天空之城》之流也就完全不感冒了。再次接触宫老爷子的动画则是在大学期间,记得当时熬了N个通宵把全集都过了好几遍,不得不感慨作品只有在相应的情景下才能释放价值。从这个观点上看,近日网上流传的“宫老爷子还能再战十年!”也并不为过。

NTV电视台于2013年8月2日晚第14次重播了《天空之城》,当剧情发展到男女主角巴鲁和希达共同念出毁灭之咒“Blase”时,一举将tweet发送峰值带到了每秒143199次,这个峰值高于2013日本新年33388次/秒,也高于拉登之死(5106次/秒)、东日本大地震(5530次/秒)、美国流行天后碧昂斯宣布怀孕(8868次/秒)。

毁灭之咒“Blase”摧毁了天空之城,同样也摧毁了经过充分准备的2ch,然而却铸就了当下Twitter的最新峰值。新的峰值是平均值(5700TPS)的25倍,当下用户平均每天发送的tweet是500万条左右。在峰值期间,Twitter一直保持着高可用性,对比3年前世界杯上的表现无疑有着天壤之别。近日Twitter在技术博客上公布了为什么会重铸Twitter以及新系统打造的相关细节,以下为译文:

重铸Twitter决心

当2010年人们将Twitter作为世界杯体验实时分享工具时,每一脚射门、每一次罚球、以及裁判出示的每一张红牌或黄牌产生的tweet都会对系统造成不同程度的影响,同时也会造成程序短时间内的不可用。2010世界杯期间,工程师日以继夜的工作,拼命的改善系统性能。不幸的是,这样的努力瞬间被Twitter的快速增长淹没。

有过这次经历,我们清楚了只有重新架构才能匹配网站的增长,同时让系统变得更加可靠。随后我们就开启了漫漫的重构之路,而当下Twitter已经可以从容应对类似《天空之城》重播、超级碗以及全球新年夜庆典这样的事件,新的架构不仅能弹性的应对负载,还可以帮助工程团队快速发布新特性,包括了跨设备的消息同步,Twitter cards可以让服务变得更加的丰富并拥有更多的内容,同样还带来了囊括用户和故事的搜索体验。为了实现这些,我们甚至改变了工程组织,下面就来一睹服务打造细节:

三年磨剑铸辉煌

重新架构

在2010世界杯尘埃落定后,我们审视了整个系统,并发现众多需要从根本上改善的地方:

1. Twitter曾运行着世界上最大的RoR堆栈,并将这个技术推到了一个绝对高度:那个时候,大约200个工程师在为之奋斗,它确实让Twitter渡过了一个用户爆发性时期,不管是新用户的增加,还是负载增加的处理。这个系统一度支撑了所有运作,从管理数据库、memcache连接到网站的渲染及公共API的呈现,这些全部包含在一个代码库里。它不仅让工程师的整合变的困难,同样也困扰了工程团队的管理及并行作业。

2. 存储系统的吞吐量达到了极限——之前Twitter使用的是纯粹的MySQL存储系统,进行分片,同时系统只有一个主节点。然而从系统展示的速度上来看,tweet的吞吐率确实出现了问题。这样我们就必须重建一个新的数据库以应对增长率,因为热门数据的读取已越来越频繁。

3. 取代从工程方面彻底的解决问题,我们曾尝试过投入更多主机;然而随后就发现,前端Rbuy主机并不能处理预期(根据性能)的事务量——从以往的经验看,这些主机完全可以胜任更多的事务。

4. 最后,从软件角度上看,我们发现我们一直在钻优化这个牛角尖,我们开始在性能和效率与代码库的可读性和灵活性之间做权衡。

综上所述,系统的重新架构已迫在眉睫,我们给自己定下了3个目标和挑战:

1. 我们希望打造出兼具性能、效率及灵活性的大型基础设施——我们希望能改善Twitter上的平均延时,同样我们希望通过离群值给Twitter带来统一的体验。我们希望将赖以运行的服务器降到十分之一。我们希望对故障进行隔离以避免大规模宕机——随着服务器规模的日益增大,这点就尤为重要,因为集群的变大意味着主机故障将愈来愈频繁。故障是不可避免的,所以我们希望它们发生在一个更容易控制的模式下。

2. 我们希望通过将相关的代码放到一起,以获得更清晰的边缘——我们已经感受了整片代码所带来的困扰,所以我们打造一个松耦合、基于服务的架构。我们目标是封装和模块化的最佳实践,当然是在系统级,而不是类、模块或者是包一级。

3. 最重要的是,我们希望能更快的发布特性。我们希望团队能并行的运作,每一个小组都可以在不依赖其它小组的情况下独立的完成局部决策,并将特性发布给用户。

我们POC了新的架构,虽然不是所有的努力最终都能符合上述目标,但是最起码做到了一部分并且解决了工具问题,当然,还得到了比现下更令人满意及可靠的基础设施。

King.com和Halfbrick Studios成功背后的21款工具 五大实用技巧 帮设计师实现高效会议沟通 机遇与挑战并存 Testin进军众测 新增多SIM卡API,Android 5.1 SDK正式发布! 谷歌代码托管平台Google Code将正式关闭 提升Sketch使用效率的6个实用技巧 界面设计原则之一篇:权衡优先级 突出焦点 划分好内容层级 开源的ResearchKit:苹果将如何颠覆未来医疗? CocoaPods 0.36正式发布,实现Swift和iOS 8动态框架支持 C++入门学习书籍推荐 GitHub是如何征服Google、微软和其它公司的 约见越狱大神!2015 MSS移动安全峰会议程披露 Spark 1.3更新概述:176个贡献者,1000+ patches 从游戏设计到星际探险,微软HoloLens全息技术将改变什么? 触摸屏技术未来?详解Apple新手段Force Touch 专访云适配CEO陈本峰:紧跟HTML5热潮,Web组件化知多少? QQ音乐5.0全新设计过程要点解析 GDC 2015感悟:从0到1,VR投入手游开发路漫漫 TestBird发布手游真人众测平台——附中国手游兼容性测试白皮书 与用户的再一次连接,微软的免费升级计划背后 颠覆App!LayaBox用Flash开发重度HTML5游戏 WinHEC:微软小娜与小冰正式登陆Windows 10平台 Coursera工程师董飞:典型硅谷公司大数据实战分析 微软开源Visual Studio构建工具MSBuild 死而复生!下架6月,Launcher重回App Store 虚拟投影、高保真耳机!新型可穿戴家庭影院Dashbon Mask 【程序员电子刊精选】躺枪的互联网思维 Algolia的分布式搜索网络架构 对抗苹果?豪雅联合Google、Intel开发智能奢表 VR产品技术解析之三星Gear VR 雅虎北研即将关闭 人才抢夺战迅速拉响 为什么要学Java 看 http://Scjp.myrice.com 也许你的一切会改变! 回答问题,我给500分!! 语音聊天用什么软件好?qq,netmeeting,yahoo message or icq? 为什么不能汇编成功? 各位,帮我一下,非赏急! 数据库快照复制问题,总出错,求救!(50分) 请问这是怎么一回事。win2k(p)+tomcat+jdk1.4.` 在VB中怎样设置Excel单元格的样式?如设置为百分数显示单元格数值? 下拉菜单问题? 请问这是怎么一回事。win2k(p)+tomcat+jdk1.4.` 求救,我财务系统的问题,大大们一定要帮助我呀! 我在调试jsp是的一个错误信息,请指教~~~ 急!!! 一个烦人的问题 关于在应用程序中使用dll中资源的问题 關於並行執行的問題 也许你现在就会改变!! 看 http://Scjp.myrice.com 为什么要学Java 其实我们很封闭! 关于NT的小问题! 请问: 請問哪里有c++的書籍下載? 几个控件重叠在一起,怎样用代码的方式使其中的某个控件在运行时放至最上!?谢! 也许你现在就会改变!! 看 http://Scjp.myrice.com 其实我们很封闭! 如何发布我的网站? 怎样编程在Windows开始菜单的的“启动”栏中添加本程序的快捷方式? 谁有installshield 6.30的license注册文件? 请问:DataGrid在WebForm中明明有数据显示,但用浏览器看就没,为何? 显卡选择问题 ? 也许你现在就会改变!! 看http://Scjp.myrice.com 其实我们很封闭! 一个Acme .....???? 共计350分哟。急急。。。。我在PHP区有发言。但是还连不上SQL SERVER2000呀。。请进 boyqing(阿清):我的问题转到这了! 谁有installshield 6.30的license注册文件? 高手请进! 大家用java都来做什么????? 搞linux,unix底层的在中关村有没有搞头? 请问为什么我的CBuilder中在菜单项File/new下的无法找到RemoteDataModule?我是新手,请帮忙! 这几句TSQL有错?帮忙看看 请教关于网卡与声卡冲突的处理方法 谁有installshield 6.30的license注册文件? 请问如何在页面操作中保存dataset 怎样选定ListCtrl中的一行(包括subItem区域)? 类对象的实例和类的实例有什么区别?? 请问各位大虾,公文管理系统怎么做? 如何将TIF或TIFF文件转换成网页可以显示的JPG,或是GIF文件(最好给出JAR和例子) 这段程序应该怎么编? 各位老大,近来看看吧,一下午了也没有人来回答,苦命呀!加分...狂加....跳楼... TO net_lover(孟子E章) : 在datagrid中如何在获得当前字段内的内容? 高手都过来,这里有好几个问题!!! 安全队列问题?up有分! 如何在XML文件中獲得某個節點下重復的節點的個數﹐用IXMLNodeCollectionMA嗎? “天下相亲与相爱“,这句歌词是哪首歌的? 6只兔,3只牛,2只狗,3只猪,4只鸭. 蝗虫生活在干燥的环境中,它的呼吸器官是 求曲线ρ^2=cos2θ所围成图形的面积 为什么说人类第一次登月是人类探索太空的里程碑 蝗虫适应干旱环境的原因如题 求曲线r^2=cos2θ所围成图形的面积 答案1/2, 若sin2α+2sin2β=2cosα,y=sin2α+cos2β的最大值为M,最小值为m.求M+m.2α和2β均为平方α、β 描写蓝天的诗(现代诗、古诗都可以)、歌词或好的句子、段落是<蓝>天!只要是写蓝天的句子或诗就行 要一片五年级动物的说明文(300字左右) 为什么说人类第一次登月对整个人类来说是巨大的飞跃,是人类探索太空的里程碑 蝗虫生活在干燥的环境中,防止水分散失的结构是( )A,肺 B,气管 C,气囊 D,外骨骼 (2sin2α/1+cos2α)*(cosα)^2/cos2α=多少 :求证:(1-2sinθcosθ)/(cos2θ-sin2θ)=(cos2θ-sin2θ)/(1+2sinθcosθ).求证:(1-2sinθcosθ)/(cos2θ-sin2θ)=(cos2θ-sin2θ)/(1+2sinθcosθ).cos2θ指的是cos^2θ~对的 没抄错 你认为哪里错了? 关于鱼体内的寄生虫问题现在菜市场里有一些卖鱼的人经常把自己从河里用电网打捞上来的鱼拿出来卖.我的妈妈很喜欢买这样的小鲫鱼,又便宜又好吃.可是现在河水污染严重,很多鱼的体内都 像相亲相爱的词语还有什么? 谈一下人类第一次登月成为人类探索太空里程碑的意义 急用 都什么鱼有寄生虫?怎样才能杀死?吃了对人体有什么危害? (2sin2α/1+cos2α)*(cos^2/cos2α)=? 2sinα=cosα,求cos2α+sin2α+1/cos^2 α 已知曲线C的参数方程为x=2cosθ y=3sinθ θ为参数,0≤θ 小学一年级语文上册组词一上上的什么? 同班同学情同手足怎么能打架斗殴呢?这时你会说诗句----- 初一上册第19课课后第一大题 登月过程示意图怎么画 情同手足中的手足是什么意思,还有面目用来比喻什么这可是送分啊 已知tanΘ=1/3,求cos2Θ+2sin2Θ 关于月球,登月 探索太空的事例内容越具体越好。 情同手足中手足一词比喻什么? 化简 [2sin2α/(1+cos2α)]*[cos^2α/cos2α] 蝗虫的足翅触角各有什么特点 求解 小学二年级语文题什么字可以和这几个字组成词:‘日、星、间、求’ 2sin2α/1+cos2α 乘以 cos²α/cos2α,本人比较笨希望讲细一点,一步一步的. 蝴蝶破茧而出的优美语句给积分! 下面的句子用什么词形容?小学二年级的语文题下面的句子用什么词形容?第1题:在极短的时间内发生的,出乎意料.第2题:重视,爱护,常放在心上.第3题:亲密,热情.第4题:使不存在,除去. 自从上次赛跑乌龟大胜兔子后,乌龟便成了体育界的名人,又是广告,又是讲演,活动不断.可蚂蚁便便不服气,向乌龟下了挑战书,我们来看:乌龟先生:本日20日下午,我们进行长跑,从小柳树开始 比较蝶类、金龟甲、蛾类、蝇类、蝗虫、蝽象、蜂类、蝼蛄、螳螂、步甲、蜜蜂等触角、足、翅的类型. 小学二年级语文第三课三组词龙字怎么组词 兔子,乌龟,蚂蚁,蜗牛,老鼠,龙它们几个哪个跑得快? 关于蝴蝶的句子 要优美,又有忧伤的感觉就像言情小说里描写的忧伤 一、照样子写词语:急得(团团转)做得( ) 热得( ) 笑得( ) 酸得( ) 谈得( )二、把下面的词语补充完整( )不林( )轻重倒置 人教版七年级下语文书第五课课后题最后一题是什么 蝗虫的翅的特征是什么 二年级语文词语 七年级上册语文书第六课课后题答案 关于蝴蝶的美丽的句子我需要:1、诗句2、赞美的句子3、类似散文的抒情句 照样子给下列词语扩词.(每词3个)例:清秀——山清水秀风雨—— 昏暗—— 曲线r=√2sinθ含在曲线r∧2=cos2θ内部的部分的曲线之长是?答案√2pai/3求详解. 蝗虫有几对翅? 关于自然万物的相依相伴,相亲相爱的和谐状态的诗句并说明理由 2只鸭子可换4 只羊,3 只羊可换6 只兔子,3 只鸭子可换几只兔子? 蝴蝶优美的诗句 不许组菠萝要三个 两只鸭换四只羊3只羊换6只兔子,问三只鸭换几只兔 有关蝴蝶的优美句子 反对相亲 经典语句 3年级下才数学题2只鸭子可换4只羊3只羊可换6只兔子3只鸭子可换几只兔子怎样列式 如图,桌子上有四分之三杯水,小健喝掉三分之一,想把水加满,他拿起另一杯盛满水的杯子向第一个杯子倒结果不小心,加满溢出来后他才发现,这时第二杯水只剩下四分之一,那么溢出的水到底是 例:清秀——山清水秀要4个 2只鸡可以换3只鸭,4只兔可以2只鸭,1只鸡可以换几只兔?这道题有几种算法? 如下图,桌子上有四分之三杯水,小健喝掉三分之满水的杯子向第一个杯子倒结果不小心,加满溢出来后他才发现
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘