我要构建一个高性能 Web 服务。它应该使用数据库(或任何其他存储系统)、某种处理语言(无论是否是脚本语言)和 Web 服务器守护程序。该系统应该分布到大量服务器上,以便服务运行快速可靠。
它应该复制数据以实现可靠性,同时它必须提供分布式计算功能,以便处理大量数据(主要是对大型数据库的查询,这些查询无法在具有适当响应水平的单个服务器上执行)。缓存技术不属于本主题。
我应该考虑哪些集群/云解决方案?
有很多单系统映像 (SSI)、集群文件系统(可以作为设计的一部分)、Hadoop 等项目、BigTable 克隆等等。每种方案都有其优点和缺点,“关于”页面总是说解决方案很棒 :) 如果您尝试部署解决该问题的东西 - 请分享您的经验!
更新:它不是文件托管,也不是游戏,而是一种互动性很强的东西。你可以将 ServerFault 作为 Web 服务的示例:小块数据、半静态内容、密集的数据库操作。
对于那些可能感兴趣的人:
相关问题:
答案1
Facebook 正在使用卡桑德拉用于数据存储。
这里是关于扩展 YouTube 和 Google 架构和演示的文章:构建大型分布式系统的设计、经验教训和建议谷歌的 Jeff Dean 描述了他们的工作方式。
答案2
Hadoop + Hive(或 PIG)是为处理海量数据而构建的。Yahoo(4000 节点集群)、Facebook、eHarmony 等都使用了这种方法。
我相信你可以从 Cloudera.com 获得品牌包/支持,或者你可以自己从 apache.org 获取
它的设置非常简单,在处理 GB-PB 数据查询时非常有用。
您可以轻松地在 EC2(这是他们的选项之一)上进行测试,而且几乎无需任何成本。
答案3
如果不知道您到底在做什么,就不可能回答;即使那样,也可能相当困难。
根据我所读过的(和尝试过的),Cassandra 看起来相当不错,但如果你不了解它的具体工作原理和局限性,就不应该将其视为设计的一部分。
这种事情从来都不是一件容易的事,而且,这对 Stackoverflow 来说更像是一个问题。
答案4
我非常喜欢全套亚马逊套件。
我相信 Amazon EC2 与 Amazon S3 和 Amazon Simple DB 或 Amazon RDS 相结合可能是您的不错选择