我们的开发团队目前正在考虑将我们的搜索系统迁移到 Apache Solr,我们非常感谢一些有关设置的建议。我们正在索引大约两亿个数据库行。我们全天添加了大约十万行新行。这些新的数据库行必须在收到后两分钟内可搜索。
我们不希望索引使搜索器陷入困境,因此我们的想法是让两个 Solr 服务器在复制设置中运行在不同的机器上。第一个 Solr 实例将是索引器。它将使用 DataImportHandler 来索引 delta 并启用自动提交以防止过度提交率。索引优化将在预定期间进行。第二个 Solr 实例(从属)将是主要搜索器,并将其索引存储在 RAID 固态驱动器上。
我们关心的是故障转移。我们的搜索是关键任务。如果主搜索器由于某种原因出现故障,我们的搜索服务将自动将查询分流到索引器节点。不过,索引同样重要。如果索引器死机,我们需要进行热故障转移。是否有推荐的方法在 Solr 复制中自动执行主节点故障转移?我已经开始研究 ZooKeeper,但我不确定这是否是最好的方法。