在这里阅读有关SolrCloud的更多信息. https://wiki.apache.org/solr/SolrCloud
从我的经验中得出的几点意见.
如果您的应用程序只是从SOLR读取数据而没有写入SOLR(实时但您使用ETL进行索引),那么您就可以使用Master Slave层次结构.
定义一个Master:-将所有写入此处.如果该主服务器故障,则将无法再为数据建立索引
创建2个(或更多)从站:-这是SOLR的一项功能,它将根据我们指定的间隔(每20秒说一次)来同步来自主站的数据.
创建一个基于从属服务器的负载均衡器,并指向您的应用程序以从负载均衡器读取数据.
优点:
通过上述设置,您对主服务器(数据写入)的可用性不高,但是直到最后一个从服务器发生故障之前,数据的可用性都很高.
缺点:
假设一个奴隶掉下来,一个小时后您将其买回,那么这个奴隶将落后另一个奴隶一个小时.因此,它的手动任务是在添加回ELB之前检查其他从站之间的数据一致性.
SolrCloud怎么样?
>这里没有Master,因此您也可以实现Writes的高可用性
>无需担心如上所述的数据不一致问题,SolrCloud架构将解决此问题.
什么最适合您.
>定义一个具有3个节点Quorom的外部Zookeeper
>至少定义2个SOLR服务器.
>将您的当前索引拆分为2个分片(默认情况下,每个分片将在步骤2中定义的2个solr节点中每个驻留一个)
>将副本定义为2(这将为每个节点中的分片创建副本)
>定义一个LB以指向上面的Solr节点.
>将您的Solr输入以及应用程序指向该LB.
通过以上设置,您可以维持两个节点的故障转移.
让我知道您是否需要更多信息.
问候,
阿内什·N
-让我们一起学习.