SOLR復(fù)制模式,是一種在分布式環(huán)境下用于同步主從服務(wù)器的一種實(shí)現(xiàn)方式,因之前提到的基于rsync的SOLR不同方式部署成本過(guò)高,被SOLR1.4版本所替換,取而代之的就是基于HTTP協(xié)議的索引文件傳輸機(jī)制,該方式部署簡(jiǎn)單,只需配置一個(gè)文件即可。 以下講解具體操作步驟: 步驟分主服務(wù)器和從服務(wù)器,允許有多個(gè)從服務(wù)器,即從服務(wù)器的配置一樣。 主服務(wù)器: 在solrConfig.xml中,找到以下行: <requestHandler name="/replication" class="solr.ReplicationHandler" > - <lst name="master">
- <str name="replicateAfter">commit</str>
-
- <str name="confFiles">schema.xml,stopwords.txt,elevate.xml</str>
-
- <str name="commitReserveDuration">00:05:00</str>
- <str name="httpBasicAuthUser">123</str>
- <str name="httpBasicAuthPassword">123</str>
-
-
- </lst>
- </requestHandler>
說(shuō)明: - replicateAfter : SOLR會(huì)自行在以下操作行為發(fā)生后執(zhí)行復(fù)制: 'commit', 'startup' 'optimize',這里我們選擇commit , 即SOLR每一次接受到commit請(qǐng)求后,會(huì)執(zhí)行復(fù)制策略。
- confFiles : 待分發(fā)的配置文件,solr 也會(huì)將主服務(wù)器上的字段配置文件:schema.xml和stopwords.txt,固排文件: elevate.xml同步到輔服務(wù)器上。
- commitReserveDuration: 每次commit之后,保留增量索引的周期時(shí)間,這里設(shè)置為5分鐘。
從服務(wù)器 <requestHandler name="/replication" class="solr.ReplicationHandler" > - <lst name="slave">
-
- <str name="masterUrl">http://localhost:port/solr/corename/replication</str>
-
- <str name="pollInterval">00:05:00</str>
-
- <str name="compression">internal</str>
-
- <str name="httpConnTimeout">5000</str>
- <str name="httpReadTimeout">10000</str>
-
-
- <str name="httpBasicAuthUser">123</str>
- <str name="httpBasicAuthPassword">123</str>
-
- </lst>
- </requestHandler>
說(shuō)明: - masterUrl : 主服務(wù)器同步URL地址
- pollInterval:從服務(wù)器同步間隔,即每隔多長(zhǎng)時(shí)間同步一次主服務(wù)器
- httpConnTimeout:設(shè)置連接超時(shí)(單位:毫秒)
- httpReadTimeout:如果設(shè)置同步索引文件過(guò)大,則應(yīng)適當(dāng)提高此值。(單位:毫秒)
- httpBasicAuthUser:驗(yàn)證用戶名,需要和主服務(wù)器一致
- httpBasicAuthPassword:驗(yàn)證密碼,需和主服務(wù)器一致
- compression:external or internal 使用SOLR自己的壓縮算法或應(yīng)用容器的
區(qū)別: 內(nèi)部算法會(huì)大大提高同步成本,原話: USE THIS ONLY IF YOUR BANDWIDTH IS LOW . THIS CAN ACTUALLY SLOWDOWN REPLICATION IN A LAN。 因此建議使用外部方式即: external . 同時(shí)需要配置外部應(yīng)用容器: 以TOMCAT為例:
- <Connector compression="on"
- compressableMimeType="text/html,text/xml,text/plain"
- compressionMinSize="2048"/>
最后保存,重啟SOLR即可。
|