与编写自己的 mongodb 存储相比,ModeShape 的确切优势是什么?

What is exact ModeShape advantages over writing own mongodb storage?

我打算开发文件存储系统。主要我会存储文本文档。我阅读了很多问题和答案,并获得了一些有关文件管理系统的信息,我可以在这些系统上开发自己的系统。

  1. Alfresco 使用文件系统和数据库引用 FS,Apache Jackrabbit 使用 fs||db,Modeshape 使用 fs||db||nosql db(cassandra,mongo)
  2. Blob 比 FS 慢,尤其是在处理大文件 (>1MB) 时,但 Blob 更可靠,并提供开箱即用的备份、迁移和一致性支持。由于我不想存储很多大文件,因此 fs 和 blob 之间的性能差异变得模糊。
  3. 我决定不将 blob 存储在关系数据库中,而是存储在 mongo 数据库中,因为
    • mongodb 在引擎盖下有 GridFS,它提供二进制数据的分块处理,开箱即用的服务器之间的复制;
    • mongodb 适合存储 key/value,在我的例子中是 docid/blob;
    • AFAIK,facebook 使用 mongo 数据库来存储图像和媒体(但他们将许多文件合并为一个 blob)
  4. 许多 CMS 系统,如 Magnolia、Hippo CMS 和基于 Jacrabbit 的 LogocalDOC,它们可能只提供 FS||DB,与我无关,因为我想要 mongodb。 Alfresco 对于我的小要求来说太麻烦了,而且也不支持 nosql DB,我决定选择 ModeShape。

问题:使用 Modeshape 而不是简单地创建自己的小型 Web 应用程序并直接写入 mongodb 并获得 GridFS 的好处的确切利润是多少?

我自己的唯一答案是 Modeshape 还附带了用于索引搜索的捆绑 Lucene 引擎。我不确定文档的版本 - 它是专门用 Modeshape 编写的还是我可以简单地依靠 mongodb 来处理这个任务? modeshape 是否提供额外的机制来提供数据的完整性和可靠的存储,或者它只是依赖于底层数据库?

我还想在 JBOSS Keycloak 下使用文件存储系统作为 REST 服务,但不确定是否可以将 Modeshape 置于 Keycloak 下。所以,我的问题是 我应该开发自己的应用程序从而获得灵活的开发,将其与 mongoDB 集成,将其置于 Keycloak 和其他自定义愿望之下,还是我应该使用 Modeshape 并获得一些优势?那有什么好处? 它真的会减少我这边的代码量吗? mongoDB 是否足以开发具有备份、版本控制、可靠存储 UTF-8 文档的简单文件存储系统

答案提供于 JBOSS forums