首页 > 解决方案 > Solr 7 升级 - /update 请求仅发送到 3 个节点中的 1 个

问题描述

我们最近从 Solr 6.6 升级到 Solr 7.7(具有 3 个节点的集群)并面临一个特殊问题。作为批处理的一部分,我们每周一将大约 9-1000 万个文档索引到 Solr,这个过程过去需要大约 50-55 分钟才能完成 Solr6.6。迁移到 Solr 7.7 后,所有配置(solrconfig.xml 和架构)与 Solr 6.6 上的现有集合完全相同,我们观察到相同的过程需要 5-6 小时才能索引相似的负载量。在检查 solr 日志时,我们发现大多数更新请求 (>90%) 都发送到了 3 个节点中的 1 个。solr 集群前面有一个 GCP 负载均衡器,该负载均衡器配置为具有循环策略。

我们使用compositeId 作为没有基于前缀的路由的路由器。示例文档:{id:AB_111_1_1, qty:10.0, name:111, part:1, date:2020-06-29T00:00:00Z }

Solr7 集群启用了在 Solr 6 集群上未启用的 auth 插件。对于这种行为,应用程序/进程方面没有其他变化。我们没有使用任何 solr 客户端(solrs 或 solrj)将更新/查询请求发送到 solr。这是启用身份验证的负载均衡器的正常 Http 连接。

这种行为会随着时间的推移而退化,并且索引变得更慢。当我们使用 solr 数据导入处理程序将文档从 solr 6.6 复制到 solr 7.7 时,我们观察到了类似的行为。最初的索引速度大约是每秒 2K 文档,但在 10-15 分钟内,它开始受到影响并且速度降低。

标签: solrsolr7

解决方案


验证 apache Tika 是正确的版本,并且 Java 内存分配正确。使用 htop 监控您的操作


推荐阅读