基于tomcat的solr3.5集群部署

SOLR主从备份

一、准备工作

1.1 保证SOLR库文件版本相同

保证SOLRlib文件版本,slf4j-log4j12-1.6.1.jar slf4j-jdk14-1.6.1.jar slf4j-api-1.6.1.jar jcl-over-slf4j-1.6.1.jar

1.2 修改TOMCAT配置文件

service.xml<Host> </Host>中增加如下内容

<Context path="/solr" docBase="/usr/local/tomcat/webapps/solr" crossContext="true">

<Environment name="solr/home" type="java.lang.String" value="/usr/local/tomcat/webapps/solr/home"/>

</Context>

二、主服务器配置

SOLR每个CORE需要单独定义复制需要进入每个CORE中修改相关配置我们现有三个CORE分别为 order\product\vehicle

    设置主服务器需要进入项目的每个COREconfig\solrconfig.xml增加如下项目:

  <requestHandler name="/replication" class="solr.ReplicationHandler" >

       <lst name="master">

         <str name="replicateAfter">commit</str>

         <str name="replicateAfter">startup</str>

         <str name="replicateAfter">optimize</str>

         <str name="confFiles">schema.xml </str>

         <str name="commitReserveDuration">00:00:10</str>

       </lst>

</requestHandler>

说明:

1)replicateAfter可取startupcommitoptimize,表示触发复制的时机。使用中,这三个值都可以配上。
2)backupAfter
表示备份时机,如果需要备份,solr会在配置的时机自动生成备份。
3)confFiles
表示在复制时需要复制到slave的文件列表。我们的环境只需要schema.xml
4)commitReserveDuration
默认是10秒,这个值通常你通常不需要修改,除非你的网络慢到传输5M数据需要10秒以上的时间。

三、从服务器配置

<requestHandler name="/replication" class="solr.ReplicationHandler" >

    <lst name="slave">

        <str name="masterUrl">http://192.168.1.252:8080/solr/order/replication</str> 

        <str name="pollInterval">00:00:10</str> 

        <str name="compression">internal</str>

        <str name="httpConnTimeout">5000</str>

        <str name="httpReadTimeout">10000</str>

        <str name="httpBasicAuthUser">username</str>

        <str name="httpBasicAuthPassword">password</str>

     </lst>

</requestHandler>

说明:上面的参数也不需要太多解释,其中pollInterval参数表明slavemaster复制数据的频率。如果对实时性要求不高,通常5-10分钟即可,也避免slaveindexsearcher频繁的切换,同时,mastercommit频率也可相对保持一致。

四、HTTP API

solrReplicationHandler提供了一系列http命令(参数command),支持的可选值如下:
1
indexversionslavemaster获取最新的索引点信息。
2
filecontentslavemaster下载指定文件的内容。
3
filelistslavemaster获取指定indexversion的索引文件列表(及需要复制的配置文件)。
4
backup:备份索引。如果担心索引有损坏的可能性,可以定期备份索引。
5
fetchindex:手动复制数据,和slave自动复制相当。
6
disablepoll:停止slave的复制。
7
enablepoll:开启slave的复制。
8
abortfetch:终止slave上正在进行的下载文件过程。
9
commitsshow当前仍旧保留的IndexCommit信息。
10
detailsshow slave当前的复制细节信息。
11
enablereplication:启动master对所有slave的复制功能
12
disablereplication:关闭master对所有slave的复制功能

五、性能

solrReplicationHandler使用http的分段连续的下载索引文件数据,而代替经典的rsyncsolr wiki上给出的性能测试对比图如下:

可以看到,性能方面差别不大,不必有太多的担心。

六、参考文章

http://wiki.apache.org/solr/SolrReplication

几种常见连接方式




 

你可能感兴趣的:(solr3.5集群部署)