我们正在使用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>
答案 0 :(得分:1)
在您提交后指定复制的配置中,如果您经常从代码发出提交然后它将触发复制,那么我建议更改为优化而不是提交。这应该可以解决您的问题。 Here是提供有关replicationafter设置的更多详细信息的链接。