首页 > 解决方案 > SolrCloud 的 SolrJ 客户端针对响应速度进行了优化?

问题描述

我想建立一个超快的 SolrCloud 系统,理想情况下保证低响应时间。问题是 Solr 通常有大约 1-5% 的缓慢响应,例如由于领导者选举、频繁的词与更多的合并等。

问题:有没有人实施过这样的解决方案,或者可以指出类似的解决方案或可能需要考虑的问题/注意事项?

我一直在分析 SolrJ 客户端,并认为类似于 LBHttpSolrClient 的方法可以工作——通过以下修改

  1. 客户端将并行(多线程)向所有相关的 SolrCloud 节点发送查询,并使用到达的第一个答案。这些可以使用 Apache CXF 等 Web 服务框架生成。

  2. 控制文档 ID,控制/跟踪它们在分片/副本中的分布,并通过 ZooKeeper/集群状态(例如从查询返回)进行监控。然后——基于集群设置配置和当前状态(包括 ZooKeeper 查询)——SolrJ 客户端可以发送查询以准确地发送那些应该是活动的并且与给定查询相关的节点。

  3. 通知 SolrJ:如果可以通知 SolrJ 集群更改或暂时不可用的服务(ZooKeeper / Solr / Ranger 等),以免浪费时间。

  4. 添加监控/警报:理想情况下,SolrJ 客户端将获取所有答案的时间,并将每个节点和 Zookeeper 的这些时间报告给监控组件(Ambari、Atlas、日志、监控/警报数据库、发送电子邮件等)

有什么建议么?

标签: solrmonitoringsolrcloudresponse-time

解决方案


推荐阅读