使用 Jackrabbit Oak 优于 MongoDB 的优势

Posted

技术标签:

【中文标题】使用 Jackrabbit Oak 优于 MongoDB 的优势【英文标题】:Advantages of using Jackrabbit Oak over MongoDB 【发布时间】:2015-12-08 18:19:02 【问题描述】:

我们正在建立一个类似于博客平台或 CMS 的新闻网站。用户可以撰写文章、发表评论、点赞和分享。我们是新手,无法在 Jackrabbit Oak 和 MongoDB 之间做出选择?

我经历了以下线程 When to use JCR (content repository) over other options?。我知道 JCR 允许将您的内容组织在一个与您的需求非常匹配的结构中。我认为这也可以在 MongoDB 中完成。答案将 JCR 与 RDBMS 进行比较,而不是像 Mongo 这样的 NoSQL DB。

此外,JCR Oak 似乎有点复杂,所以我宁愿保持堆栈简单并在 MongoDB 上投入时间 - 除非 Jackrabbit 提供极其重要且在 MongoDB 中不存在的功能。

谁能解释一下 JCR Oak over MongoDB 有什么杀手锏吗?

【问题讨论】:

【参考方案1】:

我们终于与 Cassandra 合作了。

    通过我的研究,我发现 JCR 似乎没有一个很大的活跃社区,而且教程的数量也有限。 Mongo 远远领先于 JCR,并被多家公司用于生产。在 MongoDB 上的 JCR 中找不到任何杀手级功能。

    我还阅读了几篇博客文章,虽然 Mongo 是一个很棒的数据库并且易于开始开发 - 一段时间后,如果您的网站快速增长,可扩展性可能会带来一些挑战,并且性能也可能会受到影响。在此处查看其中一篇博文:http://patrickmcfadin.com/2014/02/11/mongodb-this-is-not-the-database-you-are-looking-for/

    虽然我们现在并不担心可扩展性,但我发现 Cassandra 的无主架构的优点,CQL 几乎类似于 SQL,并且在 PlanetCassandra 上发布了性能基准,显示 Cassandra 可线性扩展。

【讨论】:

谢谢。我在 2014 年一直在寻找这样的东西,我选择了 JCR,我必须说它只是对开发人员来说是一个很好的解决方案,因为它使开发人员变得更简单、更容易,但随着时间的推移,我开始寻找其他东西。您能否详细说明您现在对您选择 Cassandra 的看法?一些图形数据库怎么样,比如 Neo4j? 实际上我们是从 Cassandra 开始的,但那个项目在 2 个月内就被废弃了,我加入了另一家使用 MongoDB 的公司。没有使用过 Neo4j,所以无法对此发表评论。根据我的经验,我发现我们不应该浪费太多时间来寻找完美的解决方案。从最有可能的选择开始。如果您正在构建一个需求不是很明确的产品,则最好使用 MongoDB,因为您可以毫不费力地更改架构。 SQL - 如果要求很明确。一旦遇到可扩展性问题,请移至 Cassandra。 Neo4j - 如果你有社交网络功能。【参考方案2】:

JCR(Java 内容存储库)只是一个 API 规范。 Apache Jackrabbit OAK 是 JCR 的补充实现。 Oak 支持多种底层内容存储,例如 NoSQL、RDBMS、文件系统。所以 Jackrabbit OAK 的有趣之处在于它可以在 MongoDB 之上运行。所以你可以同时拥有 JCR 和 MongoDB。

【讨论】:

以上是关于使用 Jackrabbit Oak 优于 MongoDB 的优势的主要内容,如果未能解决你的问题,请参考以下文章

Apache Jackrabbit Oak 1.5.9 发布

如何通过 WebDAV 访问 Jackrabbit Oak 存储库?

Apache Jackrabbit OAK - 按节点路径跨集群分片 DocumentNodeStore

Jackrabbit Oak 合并不保存更改

向 ACL 添加限制会在 Jackrabbit Oak 中的查询产生空结果

JackRabbit Oak:我的应用程序需要很长时间才能启动/重新启动