主从分布式中,就一台主服务,可以存在多个从服务,从服务需要从主服务同步数据,当几个从服务部署在同一个机房,而和主服务没有部署在同一个机房, 这种情况所有从服务都从主服务同步数据就会比较耗带宽。为了解决这个问题,可以配置一个活多个从服务器为中继器,这样,该中继器从主索引同步完索引后,然 后可以充当主服务的职责,将自己的索引不同给其他的从服务,这样这个中继器既充当了从服务又充当了主服务。
- 配置一个服务器为中继器,在 solrconfig.xml 中定义 requestHandler 时,需要同时包含主服务和从服务的文件列表
- 确保设置 replicateAfter 参数为 commit,即使主服务中 replicateAfter 设置为 optimize 。
- 可以设置压缩参数,这样可以减少下载索引的时间
这里是一个配置中继器的例子:
1
2
3
4
5
6
7
8
9
10
|
<
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
=
"pollInterval"
>00:00:60</
str
>
</
lst
>
</
requestHandler
>
|