我们打算建立一个在线平台(API,服务器,数据,Wahoo!).对于上下文,假设我们需要构建类似于twitter的东西,但是在现场活动周围组织评论(推文).有关实况事件本身的信息必须尽可能快速且一致地提供给客户,而关于事件的评论可能需要等待一段时间才能交付.在现场活动结束后,我们会读得很重.
可伸缩性非常重要.我们想开始租用VPS切片,并从那里开始扩展.我是云的忠实粉丝,并希望尽可能长时间留在那里.我们可能会使用红宝石.
我确信我想尝试文档存储而不是RDBMS.我喜欢无模式存储的想法,以及通过关注键值来实现更容易扩展的承诺.
问题是我不知道哪种技术最适合我们的平台.我看过Couch,Mongo,Tokyo Cabinet,Cassandra和带有blobbed文档的RDBMS.有没有帮助为这个特定的工作选择合适的工具?
查看BJ Clark的NO SQL替代比较.
可伸缩性非常重要.
然后你需要考虑他博客的摘录:
东京内阁 - 不规模
Redis - 不扩展
项目伏地魔 - 鳞片
MongoDB - 有限制(已实施分片)
卡桑德拉 - 鳞片
亚马逊S3 - 规模
沙发 - 无法扩展(群集和复制)
MySQL - 不扩展
并考虑HyperTable.这也是No-SQL替代方案中的一个重要竞争者.它是Google BigTable概念的开源实现.我相信它的扩展性很好,因为它被中国搜索引擎百度和娱乐门户Rediff广泛使用.
你说的是:
有关实况事件本身的信息必须尽可能快速且一致地提供给客户,而关于事件的评论可能需要等待一段时间才能交付.在现场活动结束后,我们会读得很重.
这就像Twitter的方法.您的编程语言选择也非常重要,因为Twitter最初使用Ruby进行后端邮件传递,但他们说这不是一个正确的选择,他们已经将整个邮件传递系统移动到Scala语言.
他们仍在使用Ruby作为前端.如果您想使用非常适合可扩展环境的高度可靠,容错系统,那么您应该考虑使用Scala或Erlang.