`
huangxx
  • 浏览: 316313 次
  • 来自: ...
社区版块
存档分类
最新评论

Twitter 的架构扩展: 100 倍性能提升 - zt

阅读更多

Twitter 是我最近一段时间用的最多的网络服务之一.还记得刚开始有段时间发消息速度那叫一个慢. 难得的是 Twitter 的开发者在用户激增的情况下性能提升的不错, 据说,相比当初有 100 倍的性能提升, 那我们就来看看他们都做了什么.(发现我这个 Blog 快成了 High Scalability 的中文镜像站了.)

是否真的是 100 倍性能提升, 大可不必较真, 但 Twitter 的一些经验是足以借鉴的.

Ruby on rails

似乎 Twitter 是用 RoR 开发的流量最大的站点(有待于求证). 开始使用DRb ("Distributed Ruby".), 该库可以通过 TCP/IP 从远程 Ruby 对象发送接收消息, 其缺点是不那么好用,并且没有冗余, 于是转向 Rinda , Rinda 基于 DRb 开发, 使用简单. Twitter 也证明了 Ror 应用同样可以支撑比较繁忙的站点, 工具没有对于错,关键是否能运用好.

twitter_drb.png

图片来源. (这里面我非常疑惑的一点是据说只有两台DB(Master/Slave),可要支撑这么大的并发更新似乎有些难度.)

ETag

Twitter 对于Etag 的态度让不少人疑惑. 这恰恰是因技术制宜的一个体现, 因为 Etag 不是万能药. 另外一点比较重要的原因是 Twitter 有超过 90% 的流量来自 API, 而 多数 API 客户端不支持 Etag.

数据库方面的经验

尽可能的索引(Fenng补充:不要过度索引). 因为 RoR 应用的特殊性, 索引是在代码中向 DB 提交的. 另外一个值得议题的是, 反范式. 严格遵守范式是要吃苦头的.建立可行的测试方法,明确的知道你的SQL都在用什么方式运行.(另外,我有个疑问是 rails 不支持 2 阶段提交的吧?)

避免资源过度被占用

哪个站点都不避免的有"水葫芦用户",对于这样的 Spam 类型用户, 肯定会影响原有的应用处理资源. 该处理就要处理掉. 另一个方面,对于间歇性占用系统资源过多的进程用 Monit 处理.

另外一个很重要的环节是 Cache, 不废话了,没有好的Cache机制怕这样的站点不会成功的. (建议阅读车东辛苦翻译的这篇面向站长和网站管理员的Web缓存加速指南[翻译]). Twitter 运营的一个可取之处是能够积极听取社区的意见并改进, 同时社区上也有很多用户给他们提供了不少技术支持. 这也是开放而带来的好处吧.

--EOF--

 
分享到:
评论

相关推荐

    Twitter的:beating_heart::sushi:「Twitter-:beating_heart::sushi:」-crx插件

    让你改变新Twitter:sushi:.心 支持语言:English

    Calm Twitter-1.5.1.zip

    名称:Calm Twitter ---------------------------------------- 版本:1.5.1 作者:Yusuke Saitoh 分类:其他 ---------------------------------------- 概述:隐藏Twitter 描述: 1.隐藏左栏中的“探索&rdquo...

    viewtweets::see-no-evil_monkey::monkey_face:在Rstudio中查看tweet(时间轴,收藏夹,搜索):monkey_face::see-no-evil_monkey:

    viewtweets::see-no-evil_monkey::monkey_face:在Rstudio中查看tweet(时间轴,收藏夹,搜索):monkey_face::see-no-evil_monkey:

    Better TweetDeck-4.11.0.zip

    名称:Better TweetDeck -------------------- 版本:4.11.0 ...分类:社交通讯 -------------------- 概述:将 TweetDeck 提升到一个新的水平! 使用大量功能改善您在 ...在Twitter上关注@BetterTDeck以获取新闻/支持

    chill-java-0.9.3-API文档-中文版.zip

    标签:twitter、chill、java、中文文档、jar包; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    Twitter api使用例子

    JAVA操作Twitter api使用例子,简单实用。一看就懂!

    Bot Sentinel-2.1.5.zip

    概述:自动识别不真实的帐户和有毒的 Twitter 巨魔。 描述: 自动识别不真实的帐户和有毒的Twitter巨魔。 BotSentinel是一个免费的无党派平台,旨在对不真实的帐户和有毒巨魔进行分类和跟踪。该平台使用机器学习和...

    BuzzSumo-2.0.9.zip

    Twitter官方Twitter按钮不再可用,但通过登录BuzzSumo,您可以看到拥有此扩展程序的共享者数量。然后,我们将从BuzzSumo数据库中获取计数。 所有产品和公司名称均为其各自所有者的商标或注册商标。使用它们并不意味...

    chill_2.12-0.9.3-API文档-中文版.zip

    标签:twitter、chill、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    chill-java-0.8.4-API文档-中文版.zip

    标签:twitter、java、chill、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心...

    Year-Progress-Twitter-Bot:使用NodeJS的Year-Progress-Twitter-bot

    年进度Twitter Bot在NodeJS中 嗨,我是中Year Progress Twitter Bot的创建者Victor 。 你喜欢看他的动作吗? 灵感来自创建的 twitter机器人。 这个推特机器人是什么? 该机器人在推文中发布了年度进度百分比。 ...

    chill-java-0.7.6-API文档-中文版.zip

    标签:twitter、chill、java、中文文档、jar包; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    chill_2.11-0.7.6-API文档-中英对照版.zip

    标签:twitter、chill、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心...

    BTRoblox - Making Roblox Better-3.4.1.zip

    名称:BTRoblox - Making Roblox Better ---------------------------------------- 版本:3.4.1 作者:AntiBoomz ...如果您有任何要报告的错误或要请求的功能,请在Twitter(@AntiBoomz)上给我发送消息。

    chill-java-0.7.6-API文档-中英对照版.zip

    标签:twitter、chill、java、中英对照文档、jar包; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心...

    chill-java-0.8.4-API文档-中英对照版.zip

    标签:twitter、java、chill、jar包、java、API文档、中英对照版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准...

    chill-java-0.9.3-API文档-中英对照版.zip

    标签:twitter、chill、java、中英对照文档、jar包; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心...

    pico-8-gpio:基于gpio的pico-8 twitter feed

    pico-8-gpio:基于gpio的pico-8 twitter feed

    Twitter个性:使用Twitter的Myers-Briggs个性预测

    Twitter的个性 一个自然语言处理(NLP),机器学习和数据挖掘项目,该项目将在雇用专业人员之前自动进行筛选过程,或者可用于精神病学检查患者治疗的效果。 ●使用Twitter REST API挖掘用于个性识别的推文。 ●使用...

    chill_2.12-0.7.6-API文档-中文版.zip

    标签:twitter、chill、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

Global site tag (gtag.js) - Google Analytics