Solr主从配置

来源:互联网 发布:单片机计数器实验报告 编辑:程序博客网 时间:2024/05/01 13:18

solr的主从其实是他的replication集群,从本质上说是通过ReplicationHandler来实现的,除了solr server之间可以互相同步之外,每个solr实例内部的core之间也是可以实现同步的,而能自身同步自身的实例称为Repeater,它的存在是为了分担master的同步开销,即由它来同步master里需要向外同步的core,然后所有的slave都从Repeater处同步相应的core。

具体配置方面,master(主库)的solrconfig.xml里的requestHandler配置为:

<requestHandler name="/replication" class="solr.ReplicationHandler" >    <lst name="master">        <!--在 'optimize(合并索引)'后进行同步,其他可选的值还有'commit', 'startup',该值可以填多个-->        <str name="replicateAfter">optimize</str>        <!--在 'optimize(合并索引)'后备份索引,其他可选的值还有'commit', 'startup',该值可以填多个-->        <!-- <str name="backupAfter">optimize</str> -->        <!--指定备份多少份文件,默认值为 MAX_VALUE-->        <!-- <int name="numberToKeep">2</int> -->        <!--指定需要同步的配置文件,多份文件以逗号分隔 -->        <str name="confFiles">schema.xml,stopwords.txt,elevate.xml</str>        <!--The default value of reservation is 10 secs. Normally , you should not need        to specify this -->        <str name="commitReserveDuration">00:00:10</str>    </lst></requestHandler>  
confFiles里可以指定在同步过程中,slave需要一并同步过去的文件。slave端 solrconfig.xml里的配置为:

<requestHandler name="/replication" class="solr.ReplicationHandler" >    <lst name="slave">        <!--主索引的url,该从索引将从这个主索引地址同步索引-->        <str name="masterUrl">http://remote_host:port/solr/corename/replication</str>;        <!--拉取间隔,达到这个时间,从索引将从主索引同步索引.格式为 is HH:mm:ss . 如果该设置为空从索引将不会主动从主索引同步索引.        另外拉取索引的请求也可以通过 admin 页面或者 http api 来触发 -->        <str name="pollInterval">00:00:20</str>        <!-- 以下参数不常用,非必填参数-->        <!--在索引传输过程中使用压缩,可选的值有两个 internal 和 external        如果值是 'external' 请确保主索引的solr已经设置了accept-encoding header。        如果值是 'internal' 索引数据将被自动压缩?,这个主要在低带宽情况下使用,局域网中请不要使用,局域网中使用会降低复制效率-->        <str name="compression">internal</str>        <!-以下是配置连接和读取超时时间,这个跟 http 中的概念一样,单位为毫秒-->        <str name="httpConnTimeout">5000</str>        <str name="httpReadTimeout">10000</str>        <!-- 如果主服务中的 http base 的鉴权可用的话,从服务就需要配置这个用户名和密码 -->        <str name="httpBasicAuthUser">username</str>        <str name="httpBasicAuthPassword">password</str>    </lst></requestHandler>

1 0
原创粉丝点击