zoukankan      html  css  js  c++  java
  • Jackrabbit集群

    http://pingyuan.itpub.net/post/15272/461294

    Jackrabbit集群原理

    Jackrabbit 的框架本身已经实现了集群部署。它的集群原理图如下:

    Jackrabbit的集群原理:每个应用系统拥有各自的内容仓库,每个应用系统对本身的内容仓库做了增加、删除、修改的操作,都会在内容仓库集群汇聚点做个记录,然后其他的内容仓库会同步集群汇聚点上的操作。

    比如由上图:应用系统1修改内容仓库1的某个节点信息(第1步骤),应用系统1同时在内容仓库集群汇聚点做了记录(第2步骤),然后内容仓库2会同步集群汇聚点上的操作(3步骤)

    集群的必要条件

    1. 必须保证每个集群节点的仓库persistence managers 保存数据到同一个地方、所有的集群节点都可以访问。

    2. 每个集群节点要有唯一的id

    3. 内容仓库集群汇聚点存储类型可以是数据库或者文件。

    对于第一个条件,因为在集群汇聚点上只是保存了内容仓库修改项的唯一标识,只有别的集群点同步该修改项时,才会读取内容仓库修改项的实际数据。

    对于第二个条件,集群汇聚点为了标识那个集群点做了修改。

    对于第三个条件,一定要确保集群汇聚点上的信息能够给所有的集群点访问。

    集群配置步骤

    1repository.xml文件中增加

    <Cluster id="node1" syncDelay="5" >

    <Journal class="org.apache.jackrabbit.core.journal.DatabaseJournal">

    <param name="revision" value="${rep.home}/revision.log"/>

    <param name="driver" value="oracle.jdbc.driver.OracleDriver"/>

    <param name="url" value="jdbc:oracle:thin:@172.16.14.237:1521:ora10g64" />

    <param name="user" value="exkm" />

    <param name="password" value="exkm" />

    <param name="schema" value="oracle"/>

    <param name="schemaObjectPrefix" value="J_C_"/>

    </Journal>

    </Cluster>

    上面表示集群汇聚点存储类型是存在oracle数据库。只要配置正确后,我们将在oracle数据库中找到两个表:J_C_GLOBAL_REVISIONJ_C_JOURNAL

    例子:

    比如你在应用系统1上的repository.xml增加了以下内容

    <Cluster id="node1" syncDelay="5" >

    <Journal class="org.apache.jackrabbit.core.journal.DatabaseJournal">

    <param name="revision" value="${rep.home}/revision.log"/>

    <param name="driver" value="oracle.jdbc.driver.OracleDriver"/>

    <param name="url" value="jdbc:oracle:thin:@172.16.14.237:1521:ora10g64" />

    <param name="user" value="exkm" />

    <param name="password" value="exkm" />

    <param name="schema" value="oracle"/>

    <param name="schemaObjectPrefix" value="J_C_"/>

    </Journal>

    </Cluster>

    另外应用系统2repository.xml可以增加了以下内容

    <Cluster id="node2" syncDelay="5" >

    <Journal class="org.apache.jackrabbit.core.journal.DatabaseJournal">

    <param name="revision" value="${rep.home}/revision.log"/>

    <param name="driver" value="oracle.jdbc.driver.OracleDriver"/>

    <param name="url" value="jdbc:oracle:thin:@172.16.14.237:1521:ora10g64" />

    <param name="user" value="exkm" />

    <param name="password" value="exkm" />

    <param name="schema" value="oracle"/>

    <param name="schemaObjectPrefix" value="J_C_"/>

    </Journal>

    </Cluster>

    注意<Cluster >节点上的id不同。

  • 相关阅读:
    oracle 分配表权限给用户的写法
    任务的一种写法:
    解决oracle 32位64位的问题
    设计模式学习
    Nginx 相关介绍
    (2) html 语义化
    (1)HTML5的常用新特性你必须知道
    less初学手记
    如何修改chrome记住密码后自动填充表单的黄色背景 ?
    HTML的水平居中和垂直居中解决方案
  • 原文地址:https://www.cnblogs.com/SingleCat/p/2169845.html
Copyright © 2011-2022 走看看