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