`
ruilin215
  • 浏览: 1148175 次
  • 性别: Icon_minigender_2
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论
阅读更多
从用户增长和媒体反映的角度来看,Twitter是一个很令人惊叹的成功故事。我很有幸能和开发团队谈过他们富有挑战性的开发经历。那个时候,他们需要在只有很少缓存的16块芯片情况下,巧妙的处理超过11000次每秒的访问请求。毫无疑问,他们的网站那个时候会感觉有些慢。
听起来他们那个时候有一个很好的解决方案。放进来几台新的服务器,想办法引入实质性的缓存,而且实现多个数据库服务器。这也是大多数正常的快速成长的网站采用的解决方法。
不过看起来最起码有一个开发人员觉得这种标准的扩容方法需要太多的工作,决定把他的想法在一个采访里面拿出来共享。
速度过慢的解决方案是把所有的琐碎细节都缓存起来,同时设立数个只读的从属数据库,这些没有一个是很短时间内就能实现的。所以说这个不是费用,而是时间的问题,因为在用户无法访问你的网站的时候,时间是更加宝贵。没有任何一个扩容的方法是比在Rails上开发更加简单有有意思。
在某种程度上,我能够理解这种感触。Rails让开发的过程变成一个开心的过程,但是当你需要经历所有其他开发环境同样的扩容过程时,这个对比会显得很突兀。或许这是一个自然的反应来为这个反差找一个替罪羊,而无论这个替罪羊(Rails)是多么的自然。
但是我还是要对采访里面提到的两点发表一下意见。第一,Alex提到增加更多的服务器来对系统进行扩容最终会导致给数据库带来很大的压力。这绝对是正确的,但是也是意料之中的结果,而不是事先完全没有考虑到负面效应。这不应该有任何值得大惊小怪的地方。
扩容就是一个削除瓶颈的方法。当你消除一个瓶颈的时候(比如说应用代码的执行),你多半可能发现另外一个瓶颈(比如数据库的查询)。这很正常,代表你已经取得了进展。但是你再消除这个新的瓶颈的时候,必须保持你的思路正确。如果你的瓶颈已经转移到数据库方面,那即使你大大的改进程序结构,也不会看到很显著的成效。换句话说,如果数据库一次查询需要0.5秒,那你把一个循环从耗时0.05秒改进到0.01秒就完全没有花时间来做了。
其次,当你在使用开源软件,发现有些要求是这个软件无法达到的时候,这就是你给开源软件作回报的大好机会。与其坐在原地等待某些厂家来解决你的问题,使用开源软件会给你独特的机会,来做自己命运的主人。与其作这个社区的旁观者,不如作一个参与者。对于用高级编程语言(比如说Ruby)实现的程序框架Rails,以上的话尤其贴切,因为作贡献的门槛非常的低。
在这个例子里面,看起来Twitters需要更多的复杂的手段,来同时和多个数据库进行交谈。Alex还专门强调“…Rails没有功能来和多个数据库同时进行交谈”,这不完全正确,但是Rails肯定可以可以做的更好。上次我和Twitter聊得时候,我们还讨论过这个,他们也对能够在Rails的这个领域更上一步很感兴趣。我很失望看到他们放弃了这个机会,而选择了保守旁观。
不论如何,我很自豪Twitter正在努力的挑战Rails扩容的上线。处理每秒一万一千次以上的请求,对任何动态网站应用而言都不是小成就了。一旦现在需要处理这个危机的压力消失以后,我相信Twitter的开发团队会跳出指责软件工具的圈子,而会作为参与者,完全的融入到Rails开发这个开源社区里来,贡献出他们在这次扩容的过程学到的经验和教训。我们都会因此受益。
分享到:
评论

相关推荐

    Twitter api使用例子

    Twitter API 是Twitter公司提供的一种服务,允许开发者通过编程方式访问和操作Twitter平台的功能,如发布推文、获取用户信息、搜索推文等。本篇文章将围绕"Twitter API使用例子"这一主题,结合Java编程语言,深入...

    Twitter开放API文档

    ### Twitter开放API文档知识点 #### 一、简介 Twitter开放API文档主要介绍了Twitter提供的应用程序编程接口(API),供开发者创建基于Twitter的服务扩展工具或应用程序。本文档覆盖了API的使用方法、认证流程、...

    用Java访问Twitter的API接口

    在IT行业中,与社交网络平台集成是常见的需求之一,Twitter作为全球知名的社交网络,提供了丰富的API接口供开发者使用。本文将深入探讨如何使用Java通过Twitter4J库来访问Twitter的API接口。 首先,Twitter4J是一个...

    Twitter分享android推特分享

    最后,如果你在开发过程中遇到了具体的问题,可以参考Twitter的开发者文档,或者在社区中寻求帮助。持续更新和优化你的代码,保持与Twitter SDK的同步,确保你的应用始终能够正常地与Twitter平台交互。

    Twitter 分享 标题+URL+图片

    本示例关注的是Twitter平台的分享功能,通过标题、URL和图片的组合,为用户提供更丰富的分享体验。接下来,我们将深入探讨如何实现这个功能。 首先,我们需要了解Twitter的API,它允许开发者与Twitter服务进行交互...

    Android手机端安装包-twitter9.43.0

    Android手机端twitter安装包 最新版本9.43.0 随时访问这个最大的社交网络 这款官方Twitter应用软件允许你随时随地访问全球最大的社交网络之一Twitter。 通过应用程序主页,你能够使用Twitter的一切常规功能:关注...

    twitter4j 最新api

    Twitter4j是一个开源Java库,专门用于与Twitter API交互,为开发者提供了丰富的功能,包括发布推文、检索推文、管理关注者、处理事件监听等。这个最新的API版本旨在简化和增强开发者在Twitter平台上的开发体验。以下...

    本地发布文章到twitter和facebo Twitter OAuth the easy way – simple post to twitter script

    标题中的“本地发布文章到Twitter和Facebook”指的是创建一个脚本或工具,使得用户可以从他们的本地计算机或服务器直接发布内容到这两个社交媒体平台。这个过程通常涉及到授权和API接口的使用,以便安全地与这些服务...

    twitter php

    4. **错误处理**:API调用可能会遇到各种错误,如请求限制、无效的参数等,因此良好的错误处理机制是必要的,确保在出现问题时能够适当地通知用户或记录日志。 5. **实践应用**:理论知识结合实践才能巩固理解。...

    Twitter Account Creator Working

    在当今社交媒体盛行的时代,Twitter作为全球知名的信息分享平台,拥有大量的用户群体。为了高效地管理或运营多个Twitter账号,一款名为"Twitter Account Creator"的工具应运而生,它以其高速度和先进性脱颖而出,且...

    word2vec_twitter word2vec_twitter_model.bin

    标题中的"word2vec_twitter word2vec_twitter_model.bin"提到了两个关键概念:word2vec和一个以".bin"为后缀的模型文件。这表明我们正在讨论一个基于Twitter数据训练的word2vec词向量模型。word2vec是Google开发的一...

    twitter4j-2.2.5.zip

    《Twitter4j在Storm中的应用与实践》 Twitter4j是一个开源的Java库,它为开发者提供了方便地访问Twitter API的接口。这个“twitter4j-2.2.5.zip”压缩包包含了Twitter4j库的各个组成部分,适用于在Apache Storm环境...

    Laravel开发-twitter

    **Laravel 开发-Twitter API 整合指南** 在 Laravel 框架中进行 Twitter API 开发是一项常见的任务,尤其对于构建社交媒体应用或者需要与 Twitter 数据集成的项目来说。Laravel 提供了强大的工具和库,使得与 ...

    twitter4j相关jar包

    该资源包括了twitter4j先关jar包,包括twitter4j-core.jar,twitter4j-async.jar,twitter4j-media.jar,twitter-staream

    Twitter数据集 大数据分析

    在大数据分析领域,Twitter数据集是一个非常常见的研究对象,它为学者、分析师和开发者提供了丰富的社交媒体信息,可以用于深入理解用户行为、社会趋势以及信息传播模式。本数据集包含了大量的Twitter推文,每条推文...

    twitter API全集

    Twitter API(应用程序编程接口)是Twitter为开发者提供的一套接口,允许他们通过编程方式与Twitter平台进行交互。这个“twitter API全集”可能包含了Twitter API的各种接口文档、示例代码和教程,帮助开发者进行...

    twitterAPI开发者账号申请流程 twitter账号注册

    twitterAPI开发者账号申请流程,twitter账号注册帮助文档

Global site tag (gtag.js) - Google Analytics