Apache Solr:Slave 每次轮询都会复制 10 次以上(过度提交?

2022-09-02 22:43:26

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

每个Solr内核(在从机配置中)代表一个不同的站点。我看到的大多数电话都与最大的网站有关。其中一个内核每分钟只有1次调用,并且在调用几次后,我已经能够在那里重现它,所以这让我认为它与master执行的提交量有关。${solr.core.name}/replicationupdate?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>

从属复制配置:

 <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

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


答案 2

推荐