我们正着手构建一个在线平台(API、服务器、数据、Wahoo!)。对于上下文,假设我们需要构建类似 twitter 的东西,但评论(推文)是围绕现场事件组织的。有关实时事件本身的信息必须尽可能快且一致地交付给客户,而有关事件的评论可能需要等待更长的时间才能交付。现场事件结束后,我们将阅读大量内容。
可扩展性非常重要。我们想从租用 VPS 切片开始,并从那里扩展。我是云的忠实粉丝,并希望尽可能长时间地呆在那里。我们可能会使用 ruby 。
我确信我想尝试使用文档存储而不是 RDBMS。我喜欢无模式存储的想法以及通过关注键值来更容易扩展的 promise 。
问题是我不知道哪种技术最适合我们的平台。我查看了 Couch、Mongo、Tokyo Cabinet、Cassandra 和带有 Blob 文档的 RDBMS。为这项特定工作选择合适的工具有什么帮助吗?
最佳答案
查看 BJ Clark 的 NO SQL 替代比较.
Scalability is very important.
那么你需要考虑他博客的摘录:
- Tokyo Cabinet - 无法扩展
- Redis - 无法扩展
- 伏地魔计划 - 天平
- MongoDB - 受限(已实现分片)
- Cassandra - 天平
- Amazon S3 - 扩展
- Couch -
无法扩展(Clustering 和复制) - MySQL - 无法扩展
并考虑 HyperTable .这也是 No-SQL 替代方案的有力竞争者。它是 Google BigTable 概念的开源实现。 我相信它可以很好地扩展,因为它被中国搜索引擎百度和娱乐门户网站 Rediff 广泛使用。
你是说:
Information about the live event itself must be delivered to clients as fast and consistently as possible, while comments about the event can probably wait a bit longer to be delivered. We'll be read-heavy after the live event finishes.
这有点像 Twitter 的方法。您的编程语言选择也很重要,因为 Twitter 最初使用 Ruby 进行后端消息传递,但 they were saying这不是一个正确的选择,他们已将整个消息传递系统移至 Scala语言。
他们仍在使用 Ruby 作为前端。如果您想使用非常适合可扩展环境的高度可靠、容错系统,那么您应该考虑 Scala或 Erlang .
关于ruby - 选择数据库技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2115318/