我是Solr中的主/从配置的新手,我正在尝试理解solr的主/从配置中的replicateAfter属性的含义。我最初认为在提交/优化之后,主节点会将更新发送给所有的从节点。但事实似乎并非如此。
下面是replicate的请求处理程序配置。
<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>
从站似乎在轮询间隔之后获得了更新。但我的要求是在提交/优化到Master之后立即更新slaves的索引。主机可以在提交/优化时与从机通信吗?或者,从设备到主机的通信只有一种方式?有人能帮我回答这些问题吗?谢谢!
发布于 2012-05-31 21:34:49
所以,这就是答案。当从设备请求更新时,ReplicateAfter会告诉主服务器何时提供新版本的索引(感谢raticulin的回答!)
发布于 2012-05-31 07:08:31
slaves不断轮询master,master不会发起与Slaves的任何通信。您应该将${POLL_TIME}降低到足够低,以便在主服务器上提交后复制将非常快速地发生。
https://stackoverflow.com/questions/10823909
复制相似问题