【发布时间】:2020-07-07 06:00:49
【问题描述】:
我们最近从 Solr 6.6 升级到 Solr 7.7(具有 3 个节点的集群)并面临一个特殊问题。作为批处理的一部分,我们每周一将大约 9-1000 万个文档索引到 Solr,这个过程过去需要大约 50-55 分钟才能完成 Solr6.6。 在迁移到具有与 Solr 6.6 上现有集合完全相同的所有配置(solrconfig.xml 和架构)的 Solr 7.7 后,我们观察到相同的过程需要 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 集群上未启用的身份验证插件。对于这种行为,应用程序/进程方面没有其他变化。我们没有使用任何 solr 客户端(solrs 或 solrj)将更新/查询请求发送到 solr。这是一个启用身份验证的负载均衡器的普通 Http 连接。
这种行为会随着时间的推移而退化,索引会变得更慢。当我们使用 solr 数据导入处理程序将文档从 solr 6.6 复制到 solr 7.7 时,我们观察到了类似的行为。最初的索引速度约为每秒 2K 文档,但在 10-15 分钟后,这开始受到影响并且速度降低。
【问题讨论】: