当前位置: 首页 > solr, 搜索 > 正文

solr:Replication应用

关键字:
1 星2 星3 星4 星5 星 (1 次投票, 评分: 5.00, 总分: 5)
Loading ... Loading ...
baidu_share

利用 Replication Handler 备份索引
solr 索引备份最简单的方式是通过 Replication Handler。在使用 Replication Handler 之前,需要将 solrconfig.xml 中 SolrReplicationHandler 的注释去掉:

1
2
3
4
5
6
7
8
9
10
11
<requestHandler name="/replication" class="solr.ReplicationHandler" >
  <lst name="master">
    <str name="replicateAfter">commit</str>
    <str name="replicateAfter">startup</str>
    <str name="confFiles">schema.xml,stopwords.txt</str>
  </lst>
  <lst name="slave">
    <str name="masterUrl">http://localhost:8983/solr/replication</str>
    <str name="pollInterval">00:00:60</str>
  </lst>
</requestHandler>

Replication 配置之 replicateAfter
该参数用于指定在发生了某些事情后会触发索引同步,这些事情是发生在主服务器上的,包括 commit、optimize 和 startup,也就是在提交、优化索引,或者启用索引库时,会去触发索引同步。该参数可以配置多次,即多个事件都可以触发索引同步,如下所示:

1
2
3
<str name="replicateAfter">startup</str>
<str name="replicateAfter">commit</str>
<str name="replicateAfter">optimize</str>

这样在启动、提交和优化都会促发索引同步。

使用 ReplicationHandler 设置一个中继器(Repeater)

主从分布式中,就一台主服务,可以存在多个从服务,从服务需要从主服务同步数据,当几个从服务部署在同一个机房,而和主服务没有部署在同一个机房,这种情况所有从服务都从主服务同步数据就会比较耗带宽。为了解决这个问题,可以配置一个活多个从服务器为中继器,这样,该中继器从主索引同步完索引后,然后可以充当主服务的职责,将自己的索引不同给其他的从服务,这样这个中继器既充当了从服务又充当了主服务。

配置一个服务器为中继器,在 solrconfig.xml 中定义 requestHandler 时,需要同时包含主服务和从服务的文件列表
确保设置 replicateAfter 参数为 commit,即使主服务中 replicateAfter 设置为 optimize 。
可以设置压缩参数,这样可以减少下载索引的时间

这里是一个配置中继器的例子:

1
2
3
4
5
6
7
8
9
10
<requestHandler name="/replication" class="solr.ReplicationHandler">
    <lst name="master">
        <str name="replicateAfter">commit</str>
        <str name="confFiles">schema.xml,stopwords.txt,synonyms.txt</str>
    </lst>
    <lst name="slave">
        <str name="masterUrl">http://master.solr.company.com:8983/solr/replication</str>
        <str name="pollInterval">00:00:60</str>
    </lst>
</requestHandler>

本文固定链接: http://www.chepoo.com/solr-replication-apply.html | IT技术精华网

solr:Replication应用:等您坐沙发呢!

发表评论