Solr - 多核编写器,读卡器复制配置

时间:2012-08-07 04:21:09

标签: .net solr replication load-balancing multicore

我计划为客户实施Solr。我们有一个基于.Net / SQL Server的产品。我们的数据库已经变得如此之大,我们决定使用Solr来提高查询性能(自动完成,选择列表,网格搜索等)。我们有大量的IIS盒子(因客户端而异,典型配置包括16核心,96 GB RAM等),但网络速度慢。我们的数据库大约100 GB。所以我在考虑这个配置:

与IIS一起托管solr - 由于我们还没有真正完成IIS,网络速度很慢,我想将它托管在同一个框中。

Solr将使用默认容器(Jetty)托管,并通过仅接受localhost连接(来自IIS)来保护。我希望这件作品的管理费用最低。

我将有一个专用的主核心用于纯索引和多个复制的从属核心(可能是10个)用于纯查询。所有索引数据都可以存在于SSD中。

现在我的问题是:

  1. 我应该如何处理负载平衡? solrcloud会自动执行吗? (我看到的例子(下面)说“分片” - 我真的不需要分片。)在生产中使用Alpha是否可以? (我们有100个不同的客户端和相应的n / w,h / w配置)

  2. 我应该处理提交&从代码复制或让solr处理它?

  3. 复制发生时,如何将请求路由到其他核心? (作为#1的一部分?)

  4. 在复制期间,主核心是否会被锁定以进行进一步更新?我应该从代码处理这种情况吗?

  5. 是否有可能从奴隶核心中提取“最后更新”的数据 - 理想情况下我想要接近实时搜索功能,但如果solrcloud不行,那么我想显示此时间戳用户界面,以便用户了解数据的最新状态。

  6. http://wiki.apache.org/solr/SolrCloud/

      

    明确指定要查询的分片的地址,给出   替代(由|分隔)用于负载平衡和故障转移:

         
        

    碎片=本地主机:8983 / solr的|本地主机:8900 / solr的,本地主机:7574 / solr的|本地主机:7500 / solr的

      

    非常感谢任何帮助。

    干杯!

1 个答案:

答案 0 :(得分:1)

我做了一些研究并想出了:

  1. 我应该如何处理负载均衡:SolrCloud会自动执行,只需点击群集中的任何节点/核心就可以了。 SolrCloud在Zoo Keeper中保留状态,因此它知道在哪里路由请求。

  2. 提交:我计划进行1秒钟的软提交,并通过配置进行10分钟的硬提交。复制:无需担心,当新节点/核心上线时,Solrcloud会自动分配为分片(如果不是所有分片在线)或副本。

  3. 自动处理(#1)。

  4. 使用solr云的N / A.可以对任何实例/核心进行写入和读取,无所谓。

  5. 我接近实时搜索,所以不用担心这个。如果有人回答,我们仍然会感激。

  6. 我希望我的研究对某人有用!