Sunspot中关于Master/Slave Solr的配置

Solr很早就支持数据的同步复制(Replication),同步复制的好处就是可以实现读写分离,一个Master只供用于写入数据创建索引,一个或多个Slave用于检索查询,多个Slave还可以通过一个Nginx反向代理来实现负载均衡。

Sunspot中关于Master/Slave Solr的配置_第1张图片
Solr on Rails

不过如何在Sunspot中无缝使用Master/Slave架构的Solr集群呢?以前我们的配置里面,Sunspot只支持一个Solr服务器的配置。翻遍了Sunspot的源代码以及Google,终于找到了解决方案:

原来的sunspot.yml配置是这样的:

production:
  solr:
    hostname: solr-server
    port: 8983
    log_level: WARNING

现在可以修改为:

production:
  solr:
    hostname: slave-solr-server
    port: 8983
    master_hostname: master-solr-server
    master_port: 8983
    log_level: WARNING
  master_solr:
    hostname: master-solr-server
    port: 8983
    log_level: WARNING

最后记得master是write only,而salve是read only!

从这篇文章里面挖掘出来的:
http://tekwalk.blogspot.jp/2011/11/rubyrails-utilizing-solr-in-masterslave.html

你可能感兴趣的:(Sunspot中关于Master/Slave Solr的配置)