gpt4 book ai didi

java - JCR 存储库同步 API

转载 作者:行者123 更新时间:2023-11-29 05:32:11 28 4
gpt4 key购买 nike

我正在寻找一个 API 来同步两个不同的 JCR 存储库。

  • 同步将频繁进行(例如每 1 小时一次)。
  • 只有指定的子树必须同步。
  • 一个仓库是主仓库,另一个是从仓库。
  • 从库是只读的,必须可以访问紧急情况。

有没有API可以做这样的同步操作?

如有任何建议,我们将不胜感激。

最佳答案

我可以想出几种方法来在任何 JCR 实现中仅使用 JCR API 来做到这一点:

  1. 在主存储库上创建并注册一个事件监听器,用于监视感兴趣的特定子树上发生的事件,然后以某种持久形式(例如,在队列、文件系统、第三存储库等中)记录这些事件。 .. 任何在您的环境中最有效的)。然后定期处理那些记录的事件,并通过操作从存储库中的节点来“重放”它们。
  2. 在主存储库上创建并注册一个事件监听器,用于监视感兴趣的特定子树上发生的事件,然后立即连接到从存储库并“重放”这些事件。
  3. 定期连接到主存储库并使用日志功能(如果支持)获取自上次完成此操作以来主存储库中发生的更改,然后连接到从存储库并“重放”那些适用的事件到感兴趣的特定子树。

另一种选择可能是通过集群使主库和从库完全同步。 Jackrabbit 和 ModeShape 都可以做到这一点,但它们的做法完全不同,因为它没有在 JCR 规范中定义。

例如,ModeShape (披露:我是项目负责人)您可以创建仅包含 2 个进程的小型集群或包含多个进程的较大集群。您可以预先选择集群中的每个进程是否具有所有内容的完整副本(即“复制”和“无效”模式)或仅部分内容(即“分布式”模式)。查看documentation了解详情。这些集群还可以跨越多个站点,有助于提高容错能力。 ModeShape 是有弹性的,因此您可以随时简单地向集群添加更多进程,甚至可以删除它们。最好的部分是客户端应用程序仍然只使用 JCR API,但可以像查看非集群存储库一样查看整个存储库内容。

关于java - JCR 存储库同步 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20727056/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com