Apache Jackrabbit 和 Jackrabbit Oak 有啥区别?

Posted

技术标签:

【中文标题】Apache Jackrabbit 和 Jackrabbit Oak 有啥区别?【英文标题】:What's the Difference Between Apache Jackrabbit and Jackrabbit Oak?Apache Jackrabbit 和 Jackrabbit Oak 有什么区别? 【发布时间】:2018-09-08 11:40:42 【问题描述】:

如果这听起来很愚蠢,我很抱歉,但是 Jackrabbit 和 Oak 有什么区别?我正在研究 JCR170,特别是如何在两个 jackrabbit 安装之间迁移内容,并且我遇到了 JackRabbit 和 Oak。

Apache Jackrabbit™ 内容存储库完全符合 Java 技术 API 的内容存储库 (JCR, 在 JSR 170 和 JSR 283 中指定)。

内容存储库是一个分层内容存储,支持 结构化和非结构化内容、全文搜索、版本控制、 交易、观察等。

Jackrabbit Oak 是 JCR 的补充实现 规格。努力实现可扩展和高性能 分层内容存储库,用作现代的基础 世界级的网站和其他要求苛刻的内容应用程序。看 更多信息,请访问 Jackrabbit Oak 网站。

Apache Jackrabbit 是 Apache 软件基金会的一个项目

http://jackrabbit.apache.org/jcr/index.html

他们自己的主页说 Jackrabbit 是实现 JCR 的内容存储库,而 Oak 是 JCR 的补充实现。为什么同一个项目会有两个 JCR 实现?

【问题讨论】:

你读过jackrabbit.apache.org/oak/docs/index.html吗? Oak 是jackrabbit 3.x 版,另见jackrabbit.apache.org/oak/docs/differences.html 【参考方案1】:

目前也在研究它们之间的差异。 Apache OAK 当前不支持锁定 (https://jira.apache.org/jira/browse/OAK-6421) 和合并,因此我们可以使用 jackrabbit。

【讨论】:

【参考方案2】:

正如评论中提到的,Oak 只是 Jackrabbit 的最新版本。它不仅仅是一个更新,而是相同 JSR170 的新实现。所以 API 没有改变,但底层的内部工作方式有点不同。正如 Julian 提到的,您可以在文档中找到很多内容。一些主要变化是:

会话处理:每个会话在创建时都会获取存储库的快照,以防止对存储库的并发更改:http://jackrabbit.apache.org/oak/docs/architecture/transactional-model.html MicroKernels:您可以使用它来定义存储库的存储方式。目前与以前一样使用名为 tarMK 的 tar 文件或使用 mongoMK 的 NoSQL DB MongoDB。

这里是更改的概述:http://jackrabbit.apache.org/oak/docs/differences.html

还有一个简短的幻灯片: https://www.slideshare.net/jukka/oak-the-architecture-of-apache-jackrabbit-3

【讨论】:

以上是关于Apache Jackrabbit 和 Jackrabbit Oak 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

Apache Jackrabbit - 重复节点?

如何学习使用内容存储库和 Apache JackRabbit?

apache jackrabbit 实现 webdav 客户端怎么设置主体

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

Apache Jackrabbit Oak 1.5.9 发布

apache jackrabbit 实现 webdav 客户端怎么设置主体