【发布时间】:2013-04-05 04:49:42
【问题描述】:
本周我遇到了 Solr 索引问题:http://lucene.472066.n3.nabble.com/corrupted-index-in-slave-td4054769.html,
今天,几乎每个请求都开始不断发生该错误,我创建了一个 JIRA 问题,因为我认为这是一个错误 https://issues.apache.org/jira/browse/SOLR-4707
如您所见,最后是由于 Solr 主从复制失败,现在我不知道我们是否应该考虑迁移到 SolrCloud,因为 Solr 主从复制似乎没有符合我们的要求:
- 索引大小:~2000 万个文档,~9GB
- ~1200 次更新/分钟
- ~10000 次查询/分钟(分布在 2 个从属设备上)MoreLikeThis、RealTimeGet、TermVectorComponent、SearchHandler
如果有人能帮我回答这些问题,我会非常感谢:
- 是否建议迁移到 SolrCloud?它会影响复制性能吗?
- 在这种情况下,什么性能更好?在每个服务器中维护索引的副本,还是使用分片服务器?
- 您建议使用多少分片和副本来确保高可用性?
亲切的问候,
维克多
【问题讨论】:
-
如果您可以稍等片刻,Solr 5 将在明年推出,它有一系列积极的变化,可以进一步支持 SolrCloud。 IMO 4.x 对 SolrCloud 的支持需要大量进一步的维护,所以如果您可以等待,我会等待。还决定如何分片很糟糕。
-
感谢这篇文章searchhub.org/2013/08/23/… 解决了这个问题 看完后,我可以理解软提交时间是根据我们的要求配置错误的(索引重,查询重),我们也有许多软提交,但我们不需要实时提供数据。因此,正如文章建议的那样,我尝试将软提交间隔设置得相当长,但硬提交设置为一个较小的值,在我的情况下为 15 秒。
-
此外,通过发送包含多个项目的“批量”更新消息而不是为每个被索引的项目发送一个请求来优化索引过程,并选择更好的查询结果缓存策略,有助于减少加载 solr 服务器并提高所提供服务的整体质量