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

Ivo*_*ken 18 java replication solr master-slave

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

每个Solr核心(${solr.core.name}在从配置中)代表不同的站点./replication我最看到的电话与最大的网站有关.其中一个核心每分钟只有1个呼叫,并且在调用update?commit=true几次之后我已经能够在那里重现它,所以这让我认为它与主机执行的提交量有关.

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

主复制配置:

 <requestHandler name="/replication" class="solr.ReplicationHandler" >
   <lst name="master">
     <str name="replicateAfter">commit</str>
     <str name="replicateAfter">startup</str>
   </lst>
 </requestHandler>
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

Ada*_*Dev 1

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