Apache Solr:Slave每次轮询时复制10次以上(过多的提交?)

时间:2016-02-26 13:53:16

标签: java solr replication master-slave

我们正在使用Apache Solr(3.1.0)索引为多个站点编写的大量文章。我们有一个主/从设置(底部的复制配置),其中服务器1索引文章,服务器2复制索引。奴隶应该每隔60秒轮询一次主人,但相反,我们几乎每次都能看到10到75次连续/replication次呼叫。

每个Solr核心(从属配置中为${solr.core.name})  代表一个不同的网站。我看到的/replication来电与最大的网站相关联。其中一个内核每分钟只能拨打1个电话,我可以在拨打update?commit=true几次后重现这一点,所以这让我觉得它与数量相关提交大师表演。

所以我的问题是,如何阻止Solr奴隶复制索引几十次并迫使它每分钟复制一次?我尝试过使用主配置中的commitReserveDuration参数,但我真的没有看到任何差异。

主复制配置:

 <requestHandler name="/replication" class="solr.ReplicationHandler" >
   <lst name="master">
     <str name="replicateAfter">commit</str>
     <str name="replicateAfter">startup</str>
   </lst>
 </requestHandler>

slave replication config:

 <requestHandler name="/replication" class="solr.ReplicationHandler" >
   <lst name="slave">
     <str name="masterUrl">http://${solr.master.server}/search/${solr.core.name}/replication</str>
     <str name="pollInterval">00:00:60</str>
   </lst>
 </requestHandler>

1 个答案:

答案 0 :(得分:1)

在您提交后指定复制的配置中,如果您经常从代码发出提交然后它将触发复制,那么我建议更改为优化而不是提交。这应该可以解决您的问题。 Here是提供有关replicationafter设置的更多详细信息的链接。