我想知道如何在SolrCloud上设置负载均衡器,或者不需要负载均衡器?
如果是前者,是否需要在负载均衡器中添加分片领导者?那么,如果由于某种原因,分片领导者发生了变化呢?或者集群中的所有机器(包括副本)最好都添加到负载均衡器中?
如果是后者,我猜cname需要指向SolrCloud集群,它应该是循环DNS?
来自Solrcloud实际运营经验的任何建议都会得到真正的重视。
发布于 2014-03-20 13:37:25
SolrCloud通常与ZooKeeper结合使用,客户端使用CloudSolrServer访问SolrCloud。
查询将在以下流程中完成。
请注意,我只阅读了Solr的部分源代码,并且有很多猜测。另外,我读到的是Solr4.1的源代码,所以它可能已经过时了。
servers.
IPAddress:Port SolrCloud实例从CloudSolrServer端获取服务器列表;CloudSolrServer 实例随机选择SolrCloud服务器中的一台并向其发送查询。(同时在round-robin?)更新将以与上述相同的方式完成,但也会填充到所有服务器。
请注意,对于SolrCloud,领导者和副本有很小的区别,我们可以向任何服务器发送查询/更新。它会自动重定向到其他服务器。
简而言之,负载均衡是在客户端和服务器端完成的。所以你不需要担心它。
发布于 2016-04-05 02:40:03
需要一个负载均衡器,它将由Zookeeper与SolrCloud结合使用来实现。
当您使用Zookeeper时,您必须通过使用Zookeeper来设置分片和复制,或者使用与SolrCloud捆绑在一起的嵌入式Zookeeper服务器,或者使用独立的Zookeeper集成(为了冗余,建议这样做)。
然后,您可以使用SolrCloudClient将您的查询发送到Zookeeper,然后Zookeeper会将您的查询转发到集群中正确的分片。SolrCloudClient将在实例化时要求您的所有Zookeeper实例的名称和地址,您的负载平衡将从那里进行适当的处理。
请参阅以下excllent教程:http://www.francelabs.com/blog/tutorial-solrcloud-amazon-ec2/
Solr文档:https://cwiki.apache.org/confluence/display/solr/Setting+Up+an+External+ZooKeeper+Ensemble
发布于 2017-11-13 07:04:35
此引用指的是Solr的最新版本,在撰写本文时是版本。7.1
Solrcloud - Distributed Requests
当Solr节点接收到搜索请求时,该请求将在幕后路由到分片的副本,该分片是被搜索集合的一部分。
选择的副本充当聚合器:它为集合中每个分片的随机选择副本创建内部请求,协调响应,根据需要发出任何后续内部请求(例如,改进facets值,或请求额外的存储字段),并构造客户端的最终响应。
Solrcloud - Read Side Fault Tolerance
在SolrCloud群集中,每个节点跨集合中的所有复制副本对读取请求进行负载平衡。你仍然需要一个与集群对话的“外部”负载均衡器,或者你需要一个智能客户端,它理解如何读取ZooKeeper中的Solr元数据并与之交互,并且只请求ZooKeeper集成的地址来开始发现它应该向哪些节点发送请求。(Solr提供了一个名为CloudSolrClient的智能SolrJ客户端。)
https://stackoverflow.com/questions/22523588
复制相似问题