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