solr - SolrCloud 的 SolrJ 客户端针对响应速度进行了优化?
问题描述
我想建立一个超快的 SolrCloud 系统,理想情况下保证低响应时间。问题是 Solr 通常有大约 1-5% 的缓慢响应,例如由于领导者选举、频繁的词与更多的合并等。
问题:有没有人实施过这样的解决方案,或者可以指出类似的解决方案或可能需要考虑的问题/注意事项?
我一直在分析 SolrJ 客户端,并认为类似于 LBHttpSolrClient 的方法可以工作——通过以下修改:
客户端将并行(多线程)向所有相关的 SolrCloud 节点发送查询,并使用到达的第一个答案。这些可以使用 Apache CXF 等 Web 服务框架生成。
控制文档 ID,控制/跟踪它们在分片/副本中的分布,并通过 ZooKeeper/集群状态(例如从查询返回)进行监控。然后——基于集群设置配置和当前状态(包括 ZooKeeper 查询)——SolrJ 客户端可以发送查询以准确地发送那些应该是活动的并且与给定查询相关的节点。
通知 SolrJ:如果可以通知 SolrJ 集群更改或暂时不可用的服务(ZooKeeper / Solr / Ranger 等),以免浪费时间。
添加监控/警报:理想情况下,SolrJ 客户端将获取所有答案的时间,并将每个节点和 Zookeeper 的这些时间报告给监控组件(Ambari、Atlas、日志、监控/警报数据库、发送电子邮件等)
有什么建议么?
解决方案
推荐阅读
- azure - 未找到资源组“xyz”下的资源“Microsoft.Sql/servers/server/databases/ABC”
- reporting-services - 如何设置 MS SQL Server 2017 Reporting Services 报表服务器实例?
- c++ - Ubuntu 上 g++ 7.5 中简单 c++ 程序中的 for 循环
- c# - 用引号内的双引号替换单引号
- python - python烧瓶:如果request.method =='POST'附加到表单
- c# - 无法将 Apple Id 添加到 Visual Studio 2019
- python - Python,在一行中没有for循环的情况下搜索不在dict中的子字符串
- ios - 如何使用 UITextChecker 查找拼写错误的单词
- react-native - 平面列表不呈现数据
- mysql - 使用 JPA 在复合主键上创建多个外键时出现问题