Solr Replication Master Slave - ReplicateAfter属性

时间:2012-05-30 20:39:40

标签: solr replication

我是Solr中Master / Slave配置的新手,我试图了解solr主从配置中的replicateAfter属性是什么意思。我最初认为在提交/优化之后,主服务器会将更新发送给所有从服务器。但似乎并非如此。

以下是复制的请求处理程序配置。

<requestHandler name="/replication" class="solr.ReplicationHandler" >
  <lst name="master">
    <str name="enable">${enable.master:false}</str>
    <str name="replicateAfter">commit</str>
    <str name="replicateAfter">startup</str>
     <str name="replicateAfter">optimize</str>
    <str name="confFiles">schema.xml,stopwords.txt</str>
 </lst>
 <lst name="slave">
    <str name="enable">${enable.slave:false}</str>
    <str name="masterUrl">http://${MASTER_CORE_URL}/${solr.master.core.name}/replication</str>
    <str name="pollInterval">${POLL_TIME}</str>
 </lst>

奴隶似乎在轮询间隔后获得更新。但我的要求是在提交/优化主服务器之后立即更新从属服务器的索引。主服务器可以在提交/优化时与从服务器通信吗?或者通信只是从奴隶到师父的一种方式?有人可以帮忙回答这些问题吗?谢谢!

2 个答案:

答案 0 :(得分:5)

所以,这是答案。 ReplicateAfter告诉Master何时为奴隶要求更新提供索引的新版本(感谢raticulin回答它!)

答案 1 :(得分:2)

Slaves持续轮询master,master不会启动与slave的任何通信。您应该只需降低$ {POLL_TIME},以便在master上提交后,复制将非常快。