【问题标题】:SolrCloud load-balancingSolrCloud 负载均衡
【发布时间】:2014-10-23 17:26:47
【问题描述】:

我正在开发一个使用 Solr 作为搜索引擎的 .NET 应用程序。我已经配置了具有两台服务器(一个用于副本)的 SolrCloud 安装,并且我没有将索引拆分为分片(分片数 = 1)。我读过 SolrCloud(通过 Zookeeper)可以做一些负载平衡,但我不明白怎么做。如果调用部署了 solr 实例的特定地址,则查询仅出现在该特定服务器的日志中。

在 SolrCloud 的文档中,我发现:


明确指定要查询的分片地址,提供用于负载平衡和故障转移的替代方案(由 | 分隔):

http://www.ipaddress.com:8983/solr/collection1/select?shards=www.ipaddress.com:8983/solr|www.ipaddress.com:8900/solr,www.ipaddress.com:7574/solr|www.ipaddress.com:7500/solr


我想知道如果 a 有一个完整的索引(只有一个分片),我是否可以使用这种表示法来强制负载平衡,在这种情况下负载平衡器是如何工作的。

更新:我已经测试了这个解决方案并且它有效。在以字符“|”分隔的“shards”字段中添加各种分片地址强制 Solr 调用执行简单循环平衡的内部负载平衡器 (LBHttpSolrServer)。

感谢您的帮助。

问候, 雅各布

【问题讨论】:

    标签: solr load-balancing solrcloud


    【解决方案1】:

    我已经测试过这个解决方案并且它有效。在以字符“|”分隔的“shards”字段中添加各种分片地址强制 Solr 调用执行简单循环平衡的内部负载平衡器 (LBHttpSolrServer)。

    【讨论】:

      【解决方案2】:

      由于您只有一个分片,因此接收请求的服务器将响应结果,当本地有数据时,它不会对 other 副本执行另一个请求。 Java CloudSolrServer 客户端连接到 ZooKeeper 并知道哪些服务器处于启动或关闭状态,并将在所有活动服务器之间适当地执行负载平衡。我不相信有任何端口 .NET 端口可用于此特定客户端。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-30
        • 2016-11-29
        • 2013-02-05
        • 2013-04-28
        相关资源
        最近更新 更多