【问题标题】:Cassandra or mongodb or something else for big online sales siteCassandra 或 mongodb 或其他大型在线销售网站
【发布时间】:2014-07-13 00:23:30
【问题描述】:

目前我们使用 mongodb 作为大型在线销售网站的主要商店,目前我们专注于多台机器之间的大可扩展性。

网站后端是用 node.js 编写的,我们使用 mongoose 作为 ODM。

我可以看到很多关于 cassandra DB 的博客文章,我开始考虑切换到 cassandra。但是我仍然不确定这是否是一个非常好的决定,因为我没有为 cassandra 和 node.js 找到任何好的 ODM/ORM 库(编写原始查询可能很痛苦。也可以编写经过良好测试的 ORM/ODM耗时的任务)。所以我不确定这次转换后我会有多少好处。我们使用elasticsearch作为搜索引擎,它与mongodb结合使用效果很好,我问我自己是否也可以使用cassandra。

如果你有这方面的经验,那将非常有帮助。

谢谢!

【问题讨论】:

  • 您是否遇到任何性能问题或其他问题?究竟什么是大?
  • 我们暂时没有任何问题。大是大约 100GB 的数据。
  • planetcassandra.org/industry-use-cases 阅读 Cassandra 行业用例可能会有所帮助。 Ctrl + F 表示该页面上的“电子商务”,我认为这与您的用例最相关。

标签: node.js mongodb cassandra mongoose cassandra-2.0


【解决方案1】:

Cassandra 是一个设计精美的数据库,可以满足很多场景。 MongoDB 也是一个非常好的数据库引擎。因此,让我为您比较几个主要要点。

永远在线系统

当您需要在多个数据中心提供 24x7 的运营时,Cassandra 真的很棒。如果您有多个数据中心,每个数据中心都有多个服务器,那么 Cassandra 非常适合您。 Cassandra 可以将写入同步到多个数据中心,并在复杂的设置中保持所需的数据一致性。恢复和重新同步也很容易。

另一方面,MongoDB 易于操作。如果您有一个数据中心并且只有几台服务器,那么它可能是一个完美的选择(尽管随着时间的推移全局写锁定可能会很痛苦)。在简单的部署中,它很容易维护和监控。

可扩展性

继续上述陈述 - Cassandra 是线性可扩展的。从字面上看,集群的大小没有限制。您的写入将始终保持快速,而读取可能会随着时间的推移变得更加复杂 - 取决于您的数据结构。

数据的非规范化

如果您要创建一个能够反映您需要从数据中获取什么的结构,那么使用 Cassandra 时,您的写入和读取速度会非常快。没有查询语言(嗯,有,但不完全是 SQL)可用于重组您的结果集,使用聚合、分组等。是的,有些事情是可行的,有些事情是不可行的 -这是非常特定于 Cassandra 数据模型的。您将不得不自己实现很多事情并将结果写入数据库 - 即用于聚合的计数器、不同的分组等。

相比之下,MongoDB 更易于使用、更易于学习且更灵活 - 既可用于开发(如知识曲线/努力),也可用于业务逻辑的实施(如时间/努力)。这就是为什么有用于 MongoDB 的 ORM 引擎而只有几个(非常有限)用于 Cassandra 的原因。


总结 - 两个数据库都非常好......如果你能接受它们的局限性。如果您只有 100GB 的数据并且您需要灵活、易于实现的数据库引擎,我会坚持使用 MongoDB,或者看看 RethinkDB,它有一个非常相似的模型并且更好(在我个人意见)集群/数据中心复制实施。

如果您需要尽快存储 TB 级的数据,在多个数据中心部署您的应用程序,同时承担实施相同功能和维护类似功能的额外努力成本,Cassandra 是您的理想选择。

不要认为我在描述您的数据集时使用了这个词。是的,它并不大 - 我的公司这些天存储超过 20 TB...所以是的,100GB 真的不算多...


为了阻止大家指出我应该比较其他一些功能或指出这两者之间的其他一些差异 - 这只是对我认为与问题相关的事物的粗略、高级概述,而不是对问题。但是请随时指出我错过了什么,我很乐意在这个答案中加入新的东西......

【讨论】:

  • 感谢您的回答。我也有同样的看法。你刚刚确认了。
猜你喜欢
  • 1970-01-01
  • 2017-03-23
  • 1970-01-01
  • 2011-03-24
  • 1970-01-01
  • 2011-03-06
  • 2010-11-09
  • 1970-01-01
  • 2011-07-09
相关资源
最近更新 更多