Jackrabbit聚类

问题描述 投票:1回答:1

我正在使用jackrabbit 2.18.0,我想在我的本地,稍后在AWS上进行集群设置。

现在,我可以使用以下配置的一个节点运行它:

<?xml version="1.0"?>
<Repository>
    <!-- Enable bellow config for mysqldatastore-->
    <DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore">
        <param name="driver" value="com.mysql.jdbc.Driver"/>
        <param name="url" value="jdbc:mysql://127.0.0.1:3306/jackrabbit" />
        <param name="user" value="root" />
        <param name="password" value="" />
        <param name="databaseType" value="mysql"/>
        <param name="schemaObjectPrefix" value="J_R_DS_"/>
    </DataStore>
    <!-- Enable bellow config for filedatastore-->
    <!--DataStore class="org.apache.jackrabbit.core.data.FileDataStore">
            <param name="path" value="${rep.home}/repository/datastore"/>
            <param name="minRecordLength" value="100"/>
        </DataStore-->
    <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
        <param name="path" value="${rep.home}/repository" />
    </FileSystem>
    <Security appName="Jackrabbit">
        <AccessManager class="org.apache.jackrabbit.core.security.SimpleAccessManager" />
        <LoginModule class="org.apache.jackrabbit.core.security.SimpleLoginModule">
            <param name="anonymousId" value="anonymous" />
        </LoginModule>
    </Security>
    <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="jcrlocal" />
    <Workspace name="${wsp.name}">
        <PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.MySqlPersistenceManager">
            <param name="driver" value="com.mysql.jdbc.Driver" />
            <param name="url" value="jdbc:mysql://127.0.0.1:3306/jackrabbit" />
            <param name="user" value="root" />
            <param name="password" value="" />
            <param name="schema" value="mysql" /> 
            <param name="schemaObjectPrefix" value="J_PM_${wsp.name}_" />
            <param name="externalBLOBs" value="false" />
        </PersistenceManager>
        <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
            <param name="path" value="${rep.home}/version" />
        </FileSystem>
    </Workspace>
    <Versioning rootPath="${rep.home}/version">
        <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
            <param name="path" value="${rep.home}/version" />
        </FileSystem>
        <PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.MySqlPersistenceManager">
            <param name="driver" value="com.mysql.jdbc.Driver" />
            <param name="url" value="jdbc:mysql://127.0.0.1:3306/jackrabbit" />
            <param name="user" value="root" />
            <param name="password" value="" />
            <param name="schema" value="mysql" />
            <param name="schemaObjectPrefix" value="J_V_PM_" />
            <param name="externalBLOBs" value="false" />
        </PersistenceManager>
    </Versioning>

    <Cluster id="node1" syncDelay="5"> 
        <Journal class="org.apache.jackrabbit.core.journal.DatabaseJournal"> 
            <param name="revision" value="${rep.home}/revision"/> 
            <param name="driver" value="com.mysql.jdbc.Driver"/> 
            <param name="url" value="jdbc:mysql://127.0.0.1:3306/jackrabbit"/> 
            <param name="user" value="root"/> 
            <param name="password" value=""/> 
            <param name="schema" value="mysql"/> 
            <param name="schemaObjectPrefix" value="J_C_"/> 
        </Journal> 
    </Cluster> 
    <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">   
          <param name="path" value="${rep.home}/index"/>
          <!-- SearchIndex will get the indexing configuration from the classpath, if not found in the workspace home -->
          <param name="indexingConfiguration" value="/Users/tuhinsubhramandal/jack-repo/indexing_configuration.xml"/>
          <param name="useCompoundFile" value="true"/>
          <param name="minMergeDocs" value="100"/>
          <param name="volatileIdleTime" value="3"/>
          <param name="maxMergeDocs" value="100000"/>
          <param name="mergeFactor" value="10"/>
          <param name="maxFieldLength" value="10000"/>
          <param name="bufferSize" value="10"/>
          <param name="cacheSize" value="1000"/>
          <param name="forceConsistencyCheck" value="false"/>
          <param name="autoRepair" value="true"/>
          <param name="queryClass" value="org.apache.jackrabbit.core.query.QueryImpl"/>
          <param name="respectDocumentOrder" value="true"/>
          <param name="resultFetchSize" value="100"/>
          <param name="extractorPoolSize" value="3"/>
          <param name="extractorTimeout" value="100"/>
          <param name="extractorBackLogSize" value="100"/>
          <!-- needed to highlight the searched term -->
          <param name="supportHighlighting" value="true"/>
          <!-- custom provider for getting an HTML excerpt in a query result with rep:excerpt() -->
          <param name="excerptProviderClass" value="org.apache.jackrabbit.core.query.lucene.DefaultXMLExcerpt"/>
    </SearchIndex> 
</Repository>

====================

现在这是我的问题。我正在使用tomcat9,我对webapps进行了adde jackrabbit war并使其正常工作。

为了使用3个节点来创建集群,我是否必须拥有3个不同的tomcats和3个repositiory.xml,其中不同的Clusterids指向同一个数据源?

jackrabbit
1个回答
0
投票

为了使用3个节点来创建集群,我是否必须拥有3个不同的tomcats和3个repositiory.xml,其中不同的Clusterids指向同一个数据源?

通常是的,使用相同的数据源使用自己的repository.xml和集群ID(集群部分)设置N个节点将起作用。

请记住,为了使用群集,必须满足以下要求。

引自official docs(要求部分):

  • 每个群集节点都必须具有自己的存储库配置。
  • 如果使用DataStore,则必须始终在节点之间共享。
  • 必须共享存储库级别的全局FileSystem(仅与数据存储位于同一级别的文件系统;仅在repository.xml文件中)。
  • 每个群集节点都需要其自己的(私有)工作空间级别和版本FileSystem(仅限工作空间和版本控制配置中的那些; repository.xml和workspace.xml文件中的那些)。
  • 每个群集节点都需要自己的(私有)搜索索引。
  • 必须为每个群集节点分配唯一的ID。
  • 必须根据文件或存储在数据库中选择日记帐类型。
  • 每个群集节点必须使用相同(共享)日志。
  • 持久性管理器必须将其数据存储在同一个全局可访问的位置。
© www.soinside.com 2019 - 2024. All rights reserved.