使用 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