使用 ReplicationHandler 设置一个中继器(Repeater)

主从分布式中,就一台主服务,可以存在多个从服务,从服务需要从主服务同步数据,当几个从服务部署在同一个机房,而和主服务没有部署在同一个机房,这种情况所有从服务都从主服务同步数据就会比较耗带宽。为了解决这个问题,可以配置一个活多个从服务器为中继器,这样,该中继器从主索引同步完索引后,然后可以充当主服务的职责,将自己的索引不同给其他的从服务,这样这个中继器既充当了从服务又充当了主服务。

  • 配置一个服务器为中继器,在 solrconfig.xml 中定义 requestHandler 时,需要同时包含主服务和从服务的文件列表
  • 确保设置 replicateAfter 参数为 commit,即使主服务中 replicateAfter 设置为 optimize 。
  • 可以设置压缩参数,这样可以减少下载索引的时间
这里是一个配置中继器的例子:
<requestHandler name="/replication" class="solr.ReplicationHandler">
	<lst name="master">
		<str name="replicateAfter">commit</str>
		<str name="confFiles">schema.xml,stopwords.txt,synonyms.txt</str>
	</lst>
	<lst name="slave">
		<str name="masterUrl">http://master.solr.company.com:8983/solr/replication</str>
		<str name="pollInterval">00:00:60</str>
	</lst>
</requestHandler>

Copyright © All Rights Reserved · Green Hope Theme by Sivan & schiy · Proudly powered by WordPress