gpt4 book ai didi

architecture - 高流量网站上的Solr安全数据导入和核心交换

转载 作者:行者123 更新时间:2023-12-04 04:31:43 25 4
gpt4 key购买 nike

各位技术人员大家好,

假设我们有一个(PHP)网站,每月有数百万的访问者,并且我们在该网站上运行SolR索引,其中托管了400万个文档。 Solr在4台单独的服务器上运行,其中一台服务器为主服务器,其他3台服务器被复制。

每5分钟可以将成千上万个文档插入Solr中。除此之外,用户可以更新其帐户,这也将触发solr更新。

我正在寻找一种安全的策略来快速安全地重建索引而不丢失任何文档。并具有安全的增量/更新策略。我已经考虑过一种策略,因此我想与这里的专家分享该策略,以听取他们的意见,以及我是否应该采用这种方法,或者他们可能会建议(完全)不同。

Solr数据导入

对于所有操作,我想使用一个数据导入处理程序。我想将数据和增量导入混合到一个像DataImportHandlerDeltaQueryViaFullImport这样的配置文件中。我们正在使用MySQL数据库作为数据源。

重建索引

为了重建索引,我要牢记以下几点:我们在“实时”核心附近创建了一个称为“重新索引”的新核心。使用dataimporthandler,我们可以完全重建整个文档集(400万个文档),总共花费大约1-2个小时。在实时索引上,每分钟仍然会有一些更新,插入和删除。

重建大约花了1-2个小时之后,新索引仍然不再是最新的。为了减小延迟,我们对新内核执行一次“增量”导入,以提交最近1-2小时内的所有更改。完成此操作后,将进行核心交换。每分钟运行一次的常规“增量”导入处理程序将选择此新内核。

提交对实时核心的更新

为了保持实时运行的正常运行,我们每分钟运行一次增量导入。由于进行了核心交换,因此将对跟踪索引的核心(现在是事件的核心)进行跟踪并保持最新状态。我猜如果该索引延迟几分钟会不会真的是一个问题,因为dataimport.properties也将被交换?进口增量已经超过了这几分钟的延迟,但应该是可能的。

希望您了解我的处境和策略,并建议我在您眼中的做法是否正确。我也想知道是否有我没有想到的瓶颈?我们正在运行Solr 1.4版。

我确实有一个问题,复制呢?如果主服务器交换核心,从属将如何处理呢?

交换时丢失文档是否存在任何风险?

提前致谢!

最佳答案

好(难)的问题!

完全导入是一项非常繁重的操作,通常最好运行增量查询以仅将索引更新为RDMS中的最新更改。我明白了为什么在需要进行完全导入时交换主服务器的原因:当完全导入在新内核上运行时,您可以使用增量导入来更新实时内核,因为它需要两个小时。听起来不错,只要不经常使用完全导入即可。

关于复制,在交换主内核之前,我将确保没有任何复制正在进行。有关复制如何工作的更多详细信息,如果您还没有这样做,可以查看Solr wiki

此外,在交换主内核之前,我将确保在事件内核上没有运行任何增量导入。

关于architecture - 高流量网站上的Solr安全数据导入和核心交换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9462017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com