solr與.net系列課程(七)solr主從復制
既然solr是解決大量數據全文索引的方案,由於高並發的問題,我們就要考慮solr的負載均衡了,solr提供非常簡單的主從復制的配置方法,那么下面我們就來配置一下solr的主從復制
假設我們在192.168.0.8與192.168.0.9兩台服務器上部署了solr服務,192.168.0.8作為主服務器,192.168.0.9作為從服務器,
首先配置主服務器找到C:\Program Files\Apache Software Foundation\Tomcat 7.0\solr\collection1\conf(solr核心collection1安裝路徑)下的solrconfig.xml 文件
在該文件下找到<requestHandler name="/replication" class="solr.ReplicationHandler" >節點,默認是注釋的,改為:
<requestHandler name="/replication" class="solr.ReplicationHandler" > <lst name="master"> <!-- master上有數據寫入時,觸發commit操作,slave就會發起一次同步請求--> <str name="replicateAfter">commit</str> <!-- startup參數不影響同步請求--> <str name="replicateAfter">startup</str> <!-- master觸發optimize操作,slave就會發起一次同步請求--> <!-- <str name="replicateAfter">optimize</str>--> <!-- 除了索引同步外,一些配置文件的同步,默認是在conf目錄下 --> <str name="confFiles">schema.xml,mapping-ISOLatin1Accent.txt,protwords.txt,stopwords.txt,synonyms.txt,elevate.xml</str> </lst> </requestHandler>
參數含義:
- replicateAfter : SOLR會自行在以下操作行為發生后執行復制: 'commit', 'startup' 'optimize',這里我們選擇commit , 即SOLR每一次接受到commit請求后,會執行復制策略。
- confFiles : 待分發的配置文件,solr 也會將主服務器上的字段配置文件:schema.xml和stopwords.txt,固排文件: elevate.xml同步到輔服務器上。
- commitReserveDuration: 每次commit之后,保留增量索引的周期時間,這里設置為5分鍾。
接下來配置從服務器
還是同一個文件下的那個節點
<requestHandler name="/replication" class="solr.ReplicationHandler" > <lst name="slave"> <!-- masterUrl代表主機的solr路徑,如果存在多個core時,地址寫http://localhost:9001/solr/(core名) 即可 --> <str name="masterUrl">http://192.168.0.8/solr/collection1</str> <!-- 同步時間間隔10秒一次 --> <str name="pollInterval">00:00:10</str> </lst> </requestHandler>
參數說明:
- masterUrl : 主服務器同步URL地址
- pollInterval:從服務器同步間隔,即每隔多長時間同步一次主服務器
- httpConnTimeout:設置連接超時(單位:毫秒)
- httpReadTimeout:如果設置同步索引文件過大,則應適當提高此值。(單位:毫秒)
- httpBasicAuthUser:驗證用戶名,需要和主服務器一致
- httpBasicAuthPassword:驗證密碼,需和主服務器一致
- compression:external or internal 使用SOLR自己的壓縮算法或應用容器的
最后別忘了重啟兩台solr服務器,這樣就配置完成了,solr支持多個從服務器