我支持Rails项目,其中包含Rails应用程序和Solr的其他实例。
我的环境:滑轨3.2.1,红宝石2.1.2,黑子2.1.0,Solr 4.1.6。
问题:
Clould提供程序不稳定。我不能使用其他云提供商-这是客户的需求。搜索服务器通常会进行维护,而Web应用程序会停止生产。因此,我考虑如何制作两台相同的搜索服务器,而不是一台,以使系统更稳定:如果一台服务器宕机,另一台将继续工作。
摆脱麻烦的方法:
或将两个搜索服务器配置为Solr Replication
或将两个搜索服务器配置为SolrCloud
题:
该怎么办,为什么?
SolrCloud是更好的解决方案吗?
这些变体的PROC和CONS是什么?
在哪种情况下最好采用SolrCloud?
在哪种情况下最好进行Solr复制?
最佳答案
您应该可以在论坛中找到Solr Master Slave Heirarchy与SolrCloud的可能比较,但是这些是我的理解/经验,因此请稍加使用。
该怎么办,为什么?
这完全取决于您的业务需求。我想说的是,如果您的应用程序仅从SOLR读取数据,并且需要从SOLR读取数据的高可用性,那么一个简单的从一个主机到多个从属层次结构就足够了。
但是,如果您也希望在写SOLR时也具有高可用性,那么SolrCloud是一个正确的选择
SolrCloud是更好的解决方案吗?
没什么比这更好的了,维护SolrCloud需要良好的基础架构,并且必须注意ZooKeepers的可用性,以及节点运行状况,高性能磁盘以提高复制速度等。
但是,除此之外,我们无需担心节点之间的数据一致性,因为SolrCloud会注意这一点。
这些变体的PROC和CONS是什么?
如上所述。
在哪种情况下最好采用SolrCloud?
当您需要Solr Writes和Reads上的高可用性时,我们必须选择SolrCloud
另外,如果您不能负担较大的计算机只有一个节点的费用,则可以将索引拆分为分片,并将其保留在较小的配置计算机下。
在哪种情况下最好选择Solr复制?
当您的应用程序不实时写入SOLR时,复制就足够了,而无需因SolrCloud而变得复杂。而且,它比SolrCloud相对容易设置Master Slave