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

磨剑三载,且看从容应对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了新的架构,虽然不是所有的努力最终都能符合上述目标,但是最起码做到了一部分并且解决了工具问题,当然,还得到了比现下更令人满意及可靠的基础设施。

《近匠》第04期:移动开发技术访谈,多看科技CTO王毅——阅读未来 2013年Linux领域重要事件回顾 2013年12月操作系统份额:Windows XP跌破30%大关 Linux小幅上涨 Snapchat存安全漏洞 460万用户信息被窃 年底广告高峰:AdMob团队支招“马上赚钱” 从远程调用框架认识Zookeeper 盘点Hadoop生态圈:13个让大象飞起来的开源工具 【开源推荐】Ejoy2D:“风魂”游戏引擎作者云风的又一力作 Web应用在IE11里的实际使用性能 回顾2013年十个值得关注的WordPress设计主题 为什么Google眼镜注定会失败? 2013移动开发工具盘点:最火原型设计工具 2013年12月份浏览器份额:IE 11暴涨3倍 【PPT集萃】十位一线专家分享Spark现状与未来(二) 2014年,怎么做产品才能获得成功? 年末新游盘点:2014年移动游戏四大趋势 IDC:全球有1850万程序猿 4成爱好者在写代码 PHP开发框架流行度排名:Laravel居首 2013年度最强AngularJS资源合集 研发周报:回顾2013、技术栈的选择、开源成趋势 TIOBE 2014年1月编程语言排行榜:Transact-SQL力挫Objective-C 夺得桂冠 IBM:这五个智能技术的发展,将会改变我们生活 一周消息树: 微软的2013,Surface的2014 Amazon CTO Werner Vogels:云和SaaS正在快速风靡全球 “人类先知”Isaac Asimov 50年前的科技预测大多应验了 2014年10大Web设计趋势 Google野心:App Indexing改写应用搜索格局 Cocos2d-x,老牌引擎的新进化 Kingdom Rush创始人专访:游戏与电影元素混搭 超实用的JavaScript技巧及最佳实践(下) 盖茨和鲍尔默或成挑选微软新CEO的最大阻碍 如何在两个结构相同的库之间倒数?? 请问如何简单确定右键点击的是哪个控件? 有哪位高手可以给出windows98登录时网络服务的身份验证模块的程序或相关资料的呢?非常感谢啦 在CTreeCtrl中同时使用系统图标与自定义图标的问题?? SHGetFileInfo()为什么在Win2000下工作不正常? 请问高手:DataGrid的问题 jsp和servlet是怎样交互的? 请问 有什么方法能实现 在几个数中随机取出几个数 谢谢 请问:在执行文件DPR中有一段代码出现错误,请各问指点! 两个问题:1 关于.NET中 一个新控件propertyGrid1的使用问题;2 我想生成一个由lable和TextBox合成的控件(label在左,TextBox靠其右),怎么办? 分栏打印 依旧是undefined function mysqsl_connect()问题 急:如何在生成的exe中添加新的属性页,显示更多文件信息? V-DVD ROM!? MSDN上的例子需要uafxcwd.lib,怎么找不到呢? 请问窗口的other事件是如何触发执行的 JSP如何学习 vc在什么时候会引起小喇叭的叫声 请教高手,如果在VB里实现内存共享? 用什么方法可以转换图片类型?譬如将BMP格式的转换为JPEG格式的,请各位大哥给点提示!!! 关于vb script数组和函数功能的二个问题!高难度! 关天打印问题? 只能最小化到屏幕的左下角 *急:无为,acptvb,请帮忙看看http://www.csdn.net/Expert/topic/426/426766.shtm (有关XMLHTTP) 在php中要取出一段字符串的前n个字节,而又要判断最后一个是中文还是英文,如果是中文则将最后半个字符省略应该怎么做? 有在BCB5中用过sapi5朗读中文的朋友,高分送上! 最初级的问题,关于编译程序的。 重庆市信息产业办公室荣获全国最差信息产业办公室称号 大家用PB创建Jaguar应用程序时,一般创建一个大包还是多个包阿? 奇怪的问题,来者有分!没回答问题的先到先得! 如何把临时表建在内存中 请教一个关于DELPHI多线程的问题 *急:无为,acptvb,请帮忙看看http://www.csdn.net/Expert/topic/426/426766.shtm(有关XMLHTTP) 比爱情少一点,比友情多一点,即不讨厌又不来电,你能做到吗? 请教一个问题,一个分两帧的窗口,分别是两个CView的子类。一个view里的下拉框选中一条记录,使另一个view刷新。不知道用什么mfc函数。 有关新开窗口的问题! please intrduce a good muti-root soft for win95,win98,winme,win2000,winxp 求助:哪位大侠能介绍一下网络传输设备(象 HDSL、Cable Modem)的品牌、厂家和性能? 我的ie浏览器怎么了? 搞软件开发时应不应该是一边看书一边搞开发? 请教:C中的共同体是什么?谁能解释一下或举例说明 关于线程套间问题。 请教各位在oracle中如何在date字段下条件? Window me对ADO是不是支持的不够好??? 请问csdn.net使用shtml如何构架的! 安装Acrobat后,只出现一个PDF Writer虚拟打印机,Adobe Distiller却死活装不上,不知是何原因? sybase anywhere5.0 支持 mid 函数吗,如果支持该怎么写 微软的一道面试题!!!!! help me!(53)问题解决以后再送100分 为什么我的win2000server上装不上Exchange5.5? 虚拟DVD-ROM????!!!!!!!!!!!!!!!!!!!!!!!!!!!!???? 练习4:物体静止在水平桌面上,物体对水平桌面的压力( )练习4:物体静止在水平桌面上,物体对水平桌面 的压力( ) (1)就是物体的重力 (2)大小等于物体所受重力的大小 (3)此压力是由于桌面的 如何用激光笔证明桌面受力后发生了形变这是一道初三物理实验题, 关于弹力与摩擦力关系的多选题目关于弹力与摩擦力关系,下列说法正确的是____.A.两物体间若有弹力,就一定有摩擦力.B.两物体间若有摩擦力,就一定有弹力.C.弹力和摩擦力的方向必互相垂直.D. 形容很无奈的诗句.他到失去了才懂得珍惜我,但他的死性不改让我很无奈 摩擦力是不是弹力摩擦力也有弹性形变 关于物理模型中弹簧、橡皮绳的形变,弹力.绳子的张力突变物理模型中弹簧、橡皮绳的形变不能发生突变,弹力不能发生突变.绳子的张力可以突变.中的突变指的是什么?会发生什么效果.有什么 求:形容一个人不懂得珍惜或失去后才懂得挽留的词语或成语,谢咯~如上, 解释一下"茶杯对桌面的压力是由于茶杯发生形变而产生的" 所有压力都是因为形变而产生的吗? 高一物理:为什么绳子的受力可以突变而弹簧不能 形容不懂得珍惜而后悔的诗句 杯子形变? 为什么弹簧的弹力不能瞬间消失,而绳子和杆的弹力可以瞬间消失? 坐电梯是做的是平移运动.( ) 判断一下错对.呵呵,标准答案是:为孩子想不通, 为什么说“弹力和摩擦力在本质上由电磁力引起”? 在剪断的瞬间,是连着绳的物体受力不会突变还是连着弹簧的物体? 《蝉》古诗中感受到了作者怎样的思想感情垂緌饮清露,流响出疏桐。居高声自远,非是藉秋风。 下列说法正确的是?A,木块放在桌面上对桌面的压力是由于 木块发生微小形变而产生的 B,木块放在桌下列说法正确的是?A,木块放在桌面上对桌面的压力是由于木块发生微小形变而产生的B,木块 书放在水平桌面上,桌面受弹力作用,产生弹力的直接原因是 A书的形变 B桌的形变 C书.桌的形变 D书受的重力刚考完试 这题不确定 在古诗词中的夏天 体会到了作者怎样的情感? 接触力按性质可归纳为弹力和摩擦力,他们本质上都是由电磁力引起的为什么是由电磁力引起的?分子力都是属于电磁相互作用吗? 静止放在水平桌面上的书,受到的作用力?能不能讲讲受力分析.能不能答得标准一点 古诗词、阅读短文表达情感归纳古诗词或阅读短文表达了作者怎样的感情?比如对美好生活的向往、开心、悲伤 10和100的计数单位各是多少?百位、十位、个位都说清楚 静止在水平桌面上的书,受到( )和( )的作用,这两个里的关系是大小( ),方向( ),作用在( ) 丢怎么组词 十位的计数单位是什么 摩擦力的大小与弹力成正比吗?说明理由. 判断题:经过一点可以画出无数个圆.究竟是对还是错? 0.80的计数单位是?他有几个这样的计数单位? 摩擦力的大小与什么有关? 判断题##(对的画√错的画×)1.等腰直角三角形中的三个内角比是1:1:2 ()2.三角形只有三条边 ()3.有有共同顶点的两条射线可以构成一个角 ( ) 一个木块平放在水平面桌面上这个状态一共有几个弹力 木块和桌面都有发生形变吗 滑动摩擦力与弹力的区别和联系是什么? 数学判断题:判断对错1.观察条形统计图的时候,可以根据直条的高低或长短来判断数量的多少.2.在2 3 8 5 2 6 7 2 4这一组数中,它的中位数是4,众数是2. 0.80的计数单位是( ) 滑动摩擦力中,摩擦力方向与其物体弹力方向有什么关系吗?是永远相互垂直吗?摩擦力方向与其物体弹力方向有什么关系 是否相互垂直 如果不是请举例 判断题.正确的画“∨”,错误的画“×”,并订正.(1)三角形的面积等于平行四边形面积的一半.…………………………………( )(2)两个完全一样的梯形可以拼成一个平行四边形.……… 怎样理解常见的弹力、摩擦力是由电磁力引起的? 滑动摩擦力中,摩擦力方向与其物体弹力方向有什么关系吗?是永远相互垂直吗?拜托各位了 3Q摩擦力方向与其物体弹力方向有什么关系 是否相互垂直 如果不是请举例 英语翻译难道没人会吗? 物理:弹性形变及弹性的定义弹力产生的两个条件、都有什么力属于弹力?弹力的定义、绳的拉力的方向、压力和支持力的方向。弹簧的弹力F=kx,x表示什么?k叫做弹簧的什么?单位是什么?k的 为什么有摩擦力一定要有正压力(弹力)? 如图,判断题 0.53与0.530的大小相等,但它们的计数单位不同对吗 地球的引力是否就是地球的重力呢?是磁场力吗?地球的引力、重力、磁场力是一回事情吗?地球的重力是因为地球的磁场而产生的吗?如果答的好,分数翻倍奖励, 一物体静止在水平桌面上,重力为50N,如果用20N的水平力向东拉它,它受到的摩擦力是20N对吧?为什么呢?20N的水平力向东拉它,它仍静止在水平桌面上。 数学判断题(3道)脱式计算(2道)解决问题(1道)判断:1.一个小数3.012先把它扩大10倍后,再缩小到它的1/100,小数的大小不变.()2.能被2整除的数都是合数,不能被2整除的数都是质数.()3.一个半圆的直径 弹力是指发生弹性形变的物体因要 而对使它发生弹性形变的物体施加的力,弹力的方向总是跟物体形变的方向 ,且与接触面 .(当中空白填写答案) 一个七位数,它的最高位是最小的和数.万位上的数是自然数的计数单位,十位上的数是0.5的倒数,其它(见下面其它各位上的数都是0,这个数是? 请珍惜眼前这个人用英语怎么说"请珍惜眼前这个人"用英语怎么说? 那请问弹力是不是使弹力的施力物体发生弹性形变的力的反作用力? 物体静止在水平桌面上,物体对水平桌面的压力( )A.就是物体的重力B.大小等于物体的重力C.是由于地球的吸引而产生的D.方向是竖直向下的尤其是CD两项!D中方向难道不是竖直向下的吗?】 珍惜爱你的人和你爱的人五百次的回眸才能换来今生的擦肩而过.可以一秒钟遇到一个人,一分钟认识一个人,一个小时喜欢上一个人,一天时间爱上一个人,但是却要用一辈子去忘记一个人.如果, 弹力 和摩擦力的关系是 有弹力一定有摩擦力,还是 有摩擦力一定有弹力? 物体静止在水平桌面上,物体对桌面的压力()A这个压力是由于地球的吸引而产生的B这个压力是由于物体形变而产生的是A对还是B对? “珍惜眼前的幸福”怎么翻译成英文? 弹簧产生的弹力是否与使弹簧形变的力相等?我想知道这个 因为胡克定律F=kx的F究竟是指的弹簧产生的弹力还是使弹簧形变的力? .静止在水平桌面上的物体,对水平桌面的压力? . 这压力是由于桌面的形变而产生的 错在哪里? 什么是计数单位? 是否在弹力存在的施力物与受力物都发生了弹性形变?如果不是,请举反例.
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn