CDCR配置

2018-01-11 10:43 更新

CDCR配置

源和目標(biāo)配置在數(shù)據(jù)中心處于不同集群的情況下有所不同。這里的“集群”是指單獨(dú)的ZooKeeper集合控制不相交的Solr實例。這些數(shù)據(jù)中心是否在物理上是分開的,對于這個討論來說并不重要。

源配置

下面是一個源代碼配置文件的例子,在solrconfig.xml部分。<replica>部分的存在導(dǎo)致CDCR將此群集用作源,并且不應(yīng)出現(xiàn)在目標(biāo)集合中。有關(guān)每個設(shè)置的詳細(xì)信息,請見以下兩個示例:

<requestHandler name="/cdcr" class="solr.CdcrRequestHandler">
  <lst name="replica">
    <str name="zkHost">10.240.18.211:2181,10.240.18.212:2181</str>
    <!--
    If you have chrooted your Solr information at the target you must include the chroot, for example:
    <str name="zkHost">10.240.18.211:2181,10.240.18.212:2181/solr</str>
    -->
    <str name="source">collection1</str>
    <str name="target">collection1</str>
  </lst>

  <lst name="replicator">
    <str name="threadPoolSize">8</str>
    <str name="schedule">1000</str>
    <str name="batchSize">128</str>
  </lst>

  <lst name="updateLogSynchronizer">
    <str name="schedule">1000</str>
  </lst>
</requestHandler>

<!-- Modify the <updateLog> section of your existing <updateHandler>
     in your config as below -->
<updateHandler class="solr.DirectUpdateHandler2">
  <updateLog class="solr.CdcrUpdateLog">
    <str name="dir">${solr.ulog.dir:}</str>
    <!--Any parameters from the original <updateLog> section -->
  </updateLog>
</updateHandler>

目標(biāo)配置

下面是一個典型的目標(biāo)配置。

目標(biāo)實例必須配置特定于CDCR的更新處理器鏈。更新處理器鏈必須包含CdcrUpdateProcessorFactory。此處理器的任務(wù)是確保附加到來自CDCR源SolrCloud的更新請求的版本號被重用,并且不被目標(biāo)覆蓋。正確配置的目標(biāo)配置與此類似。

<requestHandler name="/cdcr" class="solr.CdcrRequestHandler">
  <lst name="buffer">
    <str name="defaultState">disabled</str>
  </lst>
</requestHandler>

<requestHandler name="/update" class="solr.UpdateRequestHandler">
  <lst name="defaults">
    <str name="update.chain">cdcr-processor-chain</str>
  </lst>
</requestHandler>

<updateRequestProcessorChain name="cdcr-processor-chain">
  <processor class="solr.CdcrUpdateProcessorFactory"/>
  <processor class="solr.RunUpdateProcessorFactory"/>
</updateRequestProcessorChain>

<!-- Modify the <updateLog> section of your existing <updateHandler> in your
    config as below -->
<updateHandler class="solr.DirectUpdateHandler2">
  <updateLog class="solr.CdcrUpdateLog">
    <str name="dir">${solr.ulog.dir:}</str>
    <!--Any parameters from the original <updateLog> section -->
  </updateLog>
</updateHandler>

配置詳情

配置細(xì)節(jié),默認(rèn)和選項如下:

副本元素

可以將CDCR配置為將更新請求轉(zhuǎn)發(fā)到一個或多個目標(biāo)集合。目標(biāo)集合是通過“副本”列表定義的,如下所示:

  • zkHost

    目標(biāo)SolrCloud的ZooKeeper的主機(jī)地址。通常這是Target ZooKeeper集合中每個節(jié)點(diǎn)的逗號分隔列表。該參數(shù)是必需的。

  • Source

    要復(fù)制的源SolrCloud上集合的名稱。該參數(shù)是必需的。

  • Target

    要將更新轉(zhuǎn)發(fā)到的Target SolrCloud上的集合的名稱。該參數(shù)是必需的。

Replicator元素

CDC Replicator是負(fù)責(zé)將更新轉(zhuǎn)發(fā)到副本的組件。Replicator將監(jiān)視Source集合的更新日志,并將任何新的更新轉(zhuǎn)發(fā)到Target集合。

Replicator使用固定的線程池并行地將更新轉(zhuǎn)發(fā)到多個副本。如果配置了多個副本,則一個線程將以循環(huán)方式每次從一個副本轉(zhuǎn)發(fā)一批更新。Replicator可以使用“復(fù)制器”列表進(jìn)行配置,如下所示:

  • threadPoolSize

    用于轉(zhuǎn)發(fā)更新的線程數(shù)。建議每個副本一個線程。默認(rèn)是2。

  • schedule

    監(jiān)視更新日志的延遲時間(以毫秒為單位)。默認(rèn)是10。

  • batchSize

    在一個批處理中發(fā)送的更新數(shù)。最佳大小取決于文檔的大小。大批量的大文件可能會顯著增加您的內(nèi)存使用量。默認(rèn)是128。

updateLogSynchronizer元素

Expert:非leader節(jié)點(diǎn)需要不時地將其更新日志與其leader節(jié)點(diǎn)同步,以清除棄用的事務(wù)日志文件。默認(rèn)情況下,每分鐘執(zhí)行一次這樣的同步過程。可以使用“updateLogSynchronizer”列表修改同步計劃,如下所示:

  • schedule

    同步更新日志的延遲時間(以毫秒為單位)。默認(rèn)是60000。

Buffer元素

緩沖更新時,更新日志將無限期地存儲所有更新。建議在正常操作期間禁用源和目標(biāo)群集上的緩沖,因為啟用緩沖時,更新日志將無限制地增長。保持啟用緩沖用于特殊維護(hù)期間。啟動時可以使用“緩沖區(qū)”列表和參數(shù)“defaultState”禁用緩沖區(qū),如下所示:

  • defaultState

    啟動時緩沖區(qū)的狀態(tài)。默認(rèn)是enabled。

緩沖僅適用于維護(hù)窗口

緩沖旨在增加維護(hù)窗口。應(yīng)該牢記以下幾點(diǎn):

  • 啟用緩沖時,更新日志將無限制地增長; 他們將永遠(yuǎn)不會被清除。

  • 在正常操作期間,如果目標(biāo)數(shù)據(jù)中心不可用,則更新日志將在源數(shù)據(jù)中心自動生成;沒有必要為CDCR啟用緩沖來處理常規(guī)的網(wǎng)絡(luò)中斷。

    • 因此,建議在源數(shù)據(jù)中心監(jiān)視磁盤使用情況,作為目標(biāo)數(shù)據(jù)中心正在接收更新的額外檢查。

  • 不應(yīng)在目標(biāo)數(shù)據(jù)中心啟用緩沖, 因為更新日志將不受限制地累積。

  • 如果啟用了緩沖功能,那么禁用更新日志時,將更新日志的內(nèi)容發(fā)送到目標(biāo)數(shù)據(jù)中心。這個過程可能需要一些時間。

    • 在將新的更新發(fā)送到源數(shù)據(jù)中心之前,不會觸發(fā)更新日志清理。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號