Кроличий кластер - PullRequest
1 голос
/ 16 марта 2019

Я использую 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, где я добавил adrab jackrabbit war в webapps и заставил его работать.

Чтобы создать кластер с, скажем, 3 узлами, нужно ли иметь 3 разных кота с 3 наборами repositiory.xml сразные кластеры, указывающие на один и тот же источник данных?

1 Ответ

0 голосов
/ 20 марта 2019

Чтобы создать кластер с, скажем, 3 узлами, нужно ли иметь 3 разных кота с 3 наборами repositiory.xml с разными кластеридами, указывающими на один и тот же источник данных?

Вв общем да, если N узлов будут настроены с их собственным repository.xml и идентификатором кластера (раздел кластера) с использованием одного и того же источника данных, будет работать.

Имейте в виду, что для использования кластеризации должны быть соблюдены следующие требования.

Цитирование из официальных документов (раздел требований):

  • Каждый узел кластера должен иметь свою собственную конфигурацию хранилища.
  • AХранилище данных всегда должно быть общим для узлов, если оно используется.
  • Глобальная файловая система на уровне хранилища должна быть общей (только та, которая находится на том же уровне, что и хранилище данных; только в файле repository.xml).
  • Каждый узел кластера должен иметь свой собственный (частный) уровень рабочей области и версию FileSystem (только те, которые находятся в рабочей области и конфигурации управления версиями;Он repository.xml и файл workspace.xml).
  • Каждому узлу кластера нужны свои собственные (частные) поисковые индексы.
  • Каждому узлу кластера должен быть присвоен уникальный идентификатор.
  • Тип журнала должен быть выбран либо на основе файлов, либо в базе данных.
  • Каждый узел кластера должен использовать один и тот же (общий) журнал.
  • Менеджеры персистентности должны хранить свои данные вто же самое, глобально доступное место.
...