solr分布式配置之索引複製(原創)

來源:互聯網
上載者:User

solr的索引複製:將索引從主伺服器上複製到多個伺服器上.
索引複製原因:當有很多個客戶並發訪問某Solr伺服器,這可能會導致Solr伺服器崩潰(Solr伺服器效能達不到這些客戶並發訪問的需求),這時就需要通過solr索引複製來減少對伺服器的效能要求。
下面介紹一下主從伺服器的最簡單配置(如下配置在項目中已經通過驗證):
我的環境:solr master(10.148.73.83), solr slave(10.148.74.72), jdk 1.6.0_13, master(apache-tomcat-6.0.28), slave(apache-tomcat-6.0.29), apache-solr-3.6.0
先將solr與tomcat進行整合,可以參考solr3.6與tomcat的整合
配置主伺服器solr Master(10.148.73.83), 在solrconfig.xml中增加以下內容

<requestHandler name="/replication" class="solr.ReplicationHandler" >  <lst name="master">  <str name="replicateAfter">commit</str> <str name="replicateAfter">optimize</str><str name="backupAfter">optimize</str><int name="numberToKeep">2</int><str name="confFiles">schema.xml,stopwords.txt,elevate.xml</str>  <str name="commitReserveDuration">00:00:30</str> <str name="httpBasicAuthUser">admin</str>  <str name="httpBasicAuthPassword">admin</str></lst>  </requestHandler>

replicateAfter : SOLR會自行在以下操作行為發生後執行複製: 'commit', 'startup', 'optimize',該值可以填多個
backupAfter:SOLR會自行在以下操作行為發生後執行備份索引: 'commit', 'startup', 'optimize',該值可以填多個
numberToKeep:指定備份多少份檔案,預設值為 MAX_VALUE
confFiles : 待分發的設定檔,solr 也會將主伺服器上的欄位設定檔:schema.xml和stopwords.txt,固排檔案: elevate.xml同步到輔伺服器上。

commitReserveDuration: 每次commit之後,保留增量索引的周期時間,這裡設定為30秒。


配置從伺服器solr slave(10.148.74.72), 在solrconfig.xml中增加以下內容

<requestHandler name="/replication" class="solr.ReplicationHandler" >      <lst name="slave">          <str name="masterUrl">http://10.148.73.83:8080/solr/replication</str>             <str name="pollInterval">00:00:30</str> <!-- 以下參數不常用,非必填參數-->        <str name="compression">internal</str>        <str name="httpConnTimeout">100000</str>          <str name="httpReadTimeout">1000000</str> <str name="httpBasicAuthUser">admin</str>          <str name="httpBasicAuthPassword">admin</str>     </lst>  </requestHandler>

masterUrl : 主索引的url,該從索引將從這個主索引地址同步索引
pollInterval:從伺服器同步間隔,即每隔多長時間同步一次主伺服器,格式為HH:mm:ss . 如果該設定為空白從索引將不會主動從主索引同步索引.另外拉取索引的請求也可以通過 admin 頁面或者 http api 來觸發
compression:在索引傳輸過程中使用壓縮,可選的值有兩個 internal 和 external
       如果值是 'external' 請確保主索引的solr已經設定了accept-encoding header
       如果值是 'internal' 索引資料將被自動壓縮,這個主要在低頻寬情況下使用,區域網路中請不要使用,區域網路中使用會降低複製效率
httpConnTimeout:設定連線逾時(單位:毫秒)
httpReadTimeout:設定讀取逾時,如果設定同步索引檔案過大,則應適當提高此值。(單位:毫秒)
httpBasicAuthUser:驗證使用者名稱,需要和主伺服器一致

httpBasicAuthPassword:驗證密碼,需和主伺服器一致

註:從伺服器可以有多個,多個從伺服器的配置相同

至此solr的索引複製的配置工作就完成了。現在可以啟動兩個伺服器,通過http://10.148.73.83:8080/solr/admin/replication/查看到主伺服器的複製頁面的控制頁面


通過http://10.148.74.72:8080/solr/admin/replication/查看到從伺服器的複製頁面的控制頁面


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.