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

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

阿里巴巴数据交换平台——集大成于一身 [体验]Windows 8 Metro/Modern Style IE 10 Growth Hacker正席卷全球,你了解它吗? Splashtop发布Ubuntu Linux版本Streamer 性能超过VNC 10倍 Windows 8引领智能操作 人机交互进入触控时代 豌豆荚发布新版应用搜索 推出“绿色标签”机制 权威解读:苹果的未来将走向何方? Google炮轰Facebook:你们的社交已经过时了! iOS设备硬件规格完整汇总 2012 MDCC“2012移动互联网应用创新大赛与开发者面对面”专场:创所未享,携手逐梦! RIM携QNX为“2012 BlackBerry平台移动应用高校竞赛” 颁奖 BlackBerry 10 策略:用金钱吸引游戏开发者 黑莓10要来了:RIM正式开放应用提交 从RIM与微软达成exFAT授权所想到的 OpenStack中国行来到南京 中兴通讯分享电信行业应用 CSS架构目标:预测、重用、扩展、维护 黑客利用移动浏览器漏洞窃取云计算资源 地位动摇:Windows设备10月销量同比下滑21% 手机QQ浏览器4.0 Android版 极速快感 生存还是毁灭:Facebook惨败真是HTML5的错? OpenStack基金会主席:一年后成熟度超越CloudStack 在线学习新编程 技巧全攻略 “英特尔杯”HTML5程序开发邀请赛侧记 C#编译器组首席工程师Eric Lippert离职 加盟Coverity Testacular:Google开源的JavaScript测试执行过程管理工具 黑莓亚洲开发者大会报道:BB10将敲开亚洲应用市场大门 挑战Google!传Facebook与Yahoo要联手开发搜索引擎 揭秘Android 4.2 开发者的天堂与地狱 11大黄金法则:顶级移动UX设计心髓 库克时代:苹果已经不是苹果 设计师必备:极简风格的Fluid UI快速原型图工具 MFC 初学者的一个问题? 谢谢! 高分求救:我的2000server经常出现"HTTP/1.1 新建会话失败",应如何解决? win2000server重装后,硬盘丢失,盼解决。 想认识西安的 Delphier,报上你的 QQ 和 Email? MFC 初学者的一个问题? 谢谢! 应该很简单吧:如何在程序中使用外部Dll及Lib? 简单的问题 急 送分 MYSQL权限问题~!~!小菜提问. 使用MSCOMM从串口中读出乱码的问题 如何 实现 数据 窗口 对象 的 不同 行显示不同颜色 SELECT * FROM mytable order by IndexNum where (IndexNum%100=0) , 那里有问题? 强烈建议CSDN论坛加入贴图功能!! PB做的客户端进销存软件的毕业论文,该怎么写,给点意见! 招聘网页美工人员和ASP程序员 [帮我顶]强烈建议CSDN论坛加入贴图功能!! 请问如何屏蔽其他窗口? filter 问题 ????????????? 国内哪个大学的计算机图形学最强? 如何用ACCESS建立一个合理的数据库? 需要空间的看看 如果主键和其他表的外键相连是不是没有办法删掉其中某些表的数据吗? 求助:xls用odbc不能编辑,出错:Syntax error or access violation PE格式的资料你有吗? VB 中的类模块与模块之间的联系是什么? 怎样从windows访问linux的ext3分区? 关于CFM-Resources免费空间(asp+cf+access+30M)的问题!100分 消息接收后拆分,毕设急!!60分已经是倾我所有了 热心的VC大虾,请多帮忙 请问如何用JAVASCRIPT获取服务器时间,并以字符串形式输入,如:200206021943,谢谢! ADO访问access数据库,怎样删除一条记录???? 关于字符串转日期型的值的问题 Tadoquery中参数返回的问题 请问各位高手门,现在公司的数据库编程普遍用哪种模式ADO或ODBC? 如何在CFormView中添加位图背景?? 谁来帮我看看这几行程序!我实在无法解决,谢谢! 请问如何自己编程使用Logitech QuickCam 人工智能的问题(乜人都要睇) 400分题目问题要解决了就立刻、马上、立即、给分! 菜鸟问题c++中清屏函数在哪? 请问哪里有c#语法的速查手册,最好有与vb的对照版? ISA声卡,CD与ME! 帮帮忙,一个很简单的sql语句 机器的电源关不了?(重谢!) 对话框算窗口吗? Delphiz中的Excel报表问题(十万火急!!!) help 请各位帮忙介绍一本linux的入门教材,多谢!! 菜鸟送分了!(报表打印问题) 学编程N个月了,我今天要学会HOOK到底是什么函数怎么用的,想吐血的先近来~~~~ 报告D6的一个BUG 要编写象boot.ini这样的 文件 我 应该学习什么 寿,令,莫加偏旁组词 第10题,为什么氢氧化钠的摩尔质量是40 纸杯烧水的原理 长时间在有甲醛熏蒸后并由氨水中和后的车间工作会有什么样的危害? 1库伦电荷量等于多少个电子所带的电荷量 请问高锰酸钾与甲醛反应用于醺蒸消毒的原理是什么? 电动车电冲不进去是什么问题那天电动车连续放那充电充了4天没拔掉,今天发现没电.然后又充了半天发现还是没电.是什么原因啊 ,懂的说下. 纸杯烧水实验步骤,要完整的,写明实验材料和实验步骤? 相同质量的下列物质在空气中完全燃烧消耗氧气最多的是Ah2 Bp cc dsA h2 Bp Cc Ds 过程 快点 我的电动车冲不进电去是怎么回事呀? 谁知道一些神奇的实验像纸杯烧水,硬币浮在水上一些看起来很神奇的现象,有谁知道啊硬币浮在水上就是由于水的张力 4.8g镁在氧气中完全燃烧,求参加反应地氧气的质量,及消耗标准状态下的空气的体积 质量为40kg的小明同学骑着一辆质量韦10kg的自行车在平直的公路上均速行驶,在5min内行驶了1500m的路程 电动车电池冲不进去电是怎么回事?大神们帮帮忙我的电动车今年才买的是上海立马,今天开着已经快没有电了,又开了一会就彻底动不了了,然后我推回家冲电但一直冲不进去,绿灯还一直亮着, 一个电子所带电荷量是多少 从地面竖直向上抛设一个物体,在落地之前,物体向上的速度v(米/秒)是运动时间的一次函数.该物体的初始速度(t=0时物体的速度)为25米/秒,2秒后物体的速度为5米/秒.(1)写出v,t之间的关系 大容量的发电机采用离相封闭母线的目的是什么 用纸杯烧水后杯底有一层柔软的黑色物质,可以刮掉,是做物理实验,为什么是柔软的 从地面竖直向上抛射一个物体,在落地之前,物体向上的速度v(米\秒)是运动时间t(秒)的一次函数,经测量,该物体的初始速度(t=0时物体的速度)为25米/秒,2秒后物体的速度为5米/秒.(1)写出v,t 等质量的下列物质中完全燃烧消氧气最多的是A CH4B C2H2C C2H6D C2H6O so2的杀菌原理是?比如谁和谁反应之类的. 如500瓦的电饭煲,在220V电压下20分钟做好饭,180V电压下30分钟做好,请问各用多少电量,计算公式是: 转向液压缸的缸径的减少,会对缸的额定压力有影响吗,或者是对液压系统有影响吗?请给我理由,急用! 二氧化硫熏蒸原理还有漂白原理(利用的性质) (1/2)一个质量为3kg的物体做直线运动,设运动距离s(单位:m)与时间t(单位:s)的关系可用函数s(t)=1+t^2...(1/2)一个质量为3kg的物体做直线运动,设运动距离s(单位:m)与时间t(单位:s)的关系可用函 小汽车每小时行63千米,小汽车的速度是载重汽车的1.4倍.它们从相距270千米的两地同时开出,相向行驶.(1)经过几小时相遇?(2)相遇时两车各行了多少千米?(3)如果出发时是8时15分,相遇时 SO2为什么能杀毒?原理是什么? 莫加偏旁组字 变速直线运动物体在某区间上所经过的路程,等于其速度函数v(t)在这个时间区间上的定积分.谁能具体解释一下这句话呀,实在不大懂 SO2熏蒸利用生成的________的漂白性填空 一个质量为3kg的物体做直线运动,设运动距离s(单位:m)与时间t(单位:s)的关系可用函数s(t)=1+t^2表示,并且物体的动能Ek=1/2mv^2,求物体开始运动后第5s时的动能. 中和含0.2摩尔HCL的稀盐酸,需NaOH的质量为多少 A.B两地相距离80千米,一辆公共汽车从A地出发,开往B地,2小时后,又从A地同方向开出一辆小汽车,小汽车地速度是公共汽车的3倍,结果小汽车比公共汽车早40分钟到达B地,求两辆车地速度 莫加偏旁组成不同的字,在组词 0.1摩尔每升的NaOH的PH怎么算,还有0.2摩尔每升的HCL的PH 电荷电流问题两验电器相接触的电流移动方向以及负电荷的移动方向, 有一个容积为48立方米的氢气储罐,当罐的压力为10公斤时请问现在罐里有常温常压下多少体积的氢气? 测中和热的实验 为什么NAOH要比HCL量多急 0.5摩尔NaOH的质量是多少克? 氢气为什么不能用钢瓶装?在未来,如果能分解水,得到氢气,那为什么不能像液化气一样,用钢瓶装? 质量百分比为5%的NaOH、Hcl溶液的摩尔浓度分别是多少 物理电流形成自由电荷自由电荷在外加电场作用下定向移动,就形成电流这里的自由点荷指正电荷吗? 40公斤蒸汽温度400用什么型号的疏水阀? 一辆客车和一辆轿车同时从甲地开往乙地,当轿车行了全程的二分之一时,客车离乙地还有五十四千米,当轿车到达终点时,客车行了全程的五分之四,甲乙两地相距多少千米? 物理学上把( )电荷定向转移的方向规定为电流方向.若30秒内通过灯丝横截面的电荷量为15C,则灯丝中的电流为( )A 山地车短途骑行120公里,需要什么样的装备?本人是一新手,准备在暑假放假时骑车回家,路程大约120公里,全程国道,路上车辆可能比较多,现在车子已经准备好了,勇士550一辆,但是没有任何骑行装 电荷量与时间的关系I=q/t,我就想问,单位时间内通过的电荷量越多,电流越大这句话对不对.初学这章,-. 纸杯可以烧水吗 单车骑行都用什么自行车?路上带哪些装备?全程600公里,大概需要多久时间?我是一个人,有什么特别需要注意的地方么?自行车的价位考虑在2K以下, 大小两辆汽车同时从甲地开往乙地.当小汽车行完全程的二分之一大汽车离甲地40千米照这样的速度继续前行 当小汽车到达乙地是大汽车行了全程的四分之三甲乙相距多少千米 某质点的位移s随时间t的变化关系是s=sint,则在t=π时的瞬时速度为 山地车 每天骑行5、60公里有什么锻炼作用?时速平均 25 电荷量与电流是什么关系 现有一质点进行直线运动,其瞬时速度与位移成反比,乘积等于10m²/s,求其速度与时间的关系式.如题,最好不要用微积分. 做直线运动的物体速度v与时间t的函数关系为v=3-2t,此函数式中选定什么物理量的方向为正方向.详细见下做直线运动的物体速度v与时间t的函数关系为v=3-2t,此函数式中选定什么物理量的方向为 大小两车同时从甲地开往乙地,当小汽车行完全程的二分之一时,大汽车离甲地还有48千米,当小汽车到达乙地时,大汽车刚好行完全程的五分之四.甲乙两地相距多少千米? 请问爱得利的塑料奶瓶烧糊了的气味有毒吗我的宝宝85天了 煮奶瓶时忘了给煮糊了 宝宝吸进了些气体 有谁知道要紧不要紧阿 已知切向加速度为a=-k^2t,求物体速率和时间的函数关系 香水 长方的菱形 瓶身深紫色 瓶盖 黑色 香水味道不是很浓郁 想知道是什么香水 好几年前还见过长方的菱形 瓶身深紫色 瓶盖 黑色 好几年前还见过 瓶身 有英文 高锰酸钾(固体)和甲醛薰蒸消毒是什么原理?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘