【发布时间】:2012-08-04 01:40:55
【问题描述】:
我正计划为我们的客户实施 Solr。我们有一个基于 .Net/SQL Server 的产品。我们的数据库变得如此之大,我们决定使用 Solr 来提高查询性能(自动完成、选择列表、网格搜索等)。我们有大量的 IIS 盒(因客户端而异,典型配置包括 16 核、96 GB RAM 等),但网络速度较慢。我们的数据库大约 100 GB。所以我在想这个配置:
在 IIS 旁边托管 solr - 因为我们还没有真正用尽 IIS,而且网络很慢,我想在同一个盒子里托管它。
Solr 将使用默认容器 (Jetty) 托管,并通过仅接受 localhost 连接(来自 IIS)来保护。我希望这件作品的管理开销最小。
我将有一个专用的主核心用于纯索引编制和多个复制的从属核心(可能是 10 个)用于纯查询。所有索引数据都可以存在于 SSD 中。
现在我的问题是:
我应该如何处理负载平衡? solrcloud 会自动完成吗? (我在(下面)看到的例子是“分片”——我真的不需要分片。)在生产中使用 Alpha 可以吗? (我们有 100 个不同的客户端和相应的 n/w、h/w 配置)
我应该从代码处理提交和复制还是让 solr 处理?
发生复制时,如何将请求路由到其他核心? (作为 #1 的一部分涵盖?)
在复制期间,主核心是否会被锁定以进行进一步更新?我应该从代码中处理这种情况吗?
是否可以从从属核心中提取“上次更新”数据 - 理想情况下,我想使用近实时搜索功能,但如果 solrcloud 不行,那么我想在UI,以便用户了解数据的最新情况。
http://wiki.apache.org/solr/SolrCloud/
明确指定要查询的分片地址,给出 用于负载平衡和故障转移的替代方案(由 | 分隔):
shards=localhost:8983/solr|localhost:8900/solr,localhost:7574/solr|localhost:7500/solr
非常感谢任何帮助。
干杯!
【问题讨论】:
标签: .net solr replication load-balancing multicore