当前位置: 首页 > 知识库问答 >
问题:

如果我使用的负载平衡器不与solrcloud中的zookeeper通信,是否会丢失功能?

齐英韶
2023-03-14

在solr云设置中,有8个solr节点和3个zookeeper节点。有一个负载平衡器可以获取所有索引和搜索查询,并将它们分发到solr云中的这8个solr节点。在将solr查询发送到特定solr节点之前,它首先检查服务endpoint是否处于活动状态。只有当它处于活动状态时,才会将请求发送到特定的solr节点。动物园管理员负责沙德地区领导人的选举。在此设置中,zookeeper不处理查询分发。这种设置对分布式查询有害吗?由于负载平衡器执行查询分发工作,solrcloud提供的其他功能缺失了。

请注意,负载平衡器是必要的,因为有不同的客户端(Java、Ruby、JavaScript)访问solr服务。只有SolrJ能够使用CloudSolrServer类与zookeeper通信)。此外,它有助于缩放zookeeper节点,而无需更改客户端的任何设置。

共有1个答案

桓智敏
2023-03-14

SolrJ CloudSolrClient有两个优点:

>

  • 节点自动发现:它总是知道集群中有哪些节点,使用SolrCloud集群本身使用的相同ZK机制。

    特定于查询的路由:尽管任何请求都可以发送到SolrCloud集群中的任何节点,但其中许多请求都会生成一个到实际节点的简单代理来处理请求

    2a:索引请求直接路由到处理该文档id的碎片的负责人。对于批量插入请求,这可能意味着几个子请求,将一批文档直接分配给每个适当的碎片。

    2b:对集合的查询路由到具有该集合中的碎片的节点。

    CloudSolrClient已经知道这些东西并直接路由,避免了集群中的代理请求。

    尽管如此,内部路由请求还是相当轻量级的。您将为请求添加一些延迟,增加内部网络带宽,并为SolrCloud集群添加最少量的CPU使用量。

    所以我想说的是,如果很难重现这些优势,Solr会处理好事情,没有它们,你可能会过得很好。

  •  类似资料:
    • 这意味着Zookeeper将负载均衡器理解为一个客户机,并与之建立联系。但是负载均衡器只是ping TCP2181就出来了。

    • 我正在使用编写负载均衡器。 负载平衡器侦听本地传输地址。就Netty而言,只创建了一个频道来监听该地址。然后,(单线程事件循环组的)单线程将传入的UDP数据包调度到工作线程池进行处理(这里,处理意味着执行负载平衡)。 在出站端,可以使用多个服务器。对于每个接收到的UDP数据包,关联的工作线程选择一个服务器,并将UDP数据包转发到此服务器。为了转发UDP数据包,需要一个通道。 我可以看到四种方法:

    • kubernetes集群与api服务器(https://192.168.0.10:6443) 想法: 从我的笔记本电脑,我想运行kubectl,指向负载均衡器,在那里牧师代理将把我重定向到api服务器。 步骤: -我将kubeconfig(笔记本电脑上)文件中的服务器ip更改为LB的ip:https://192.168.0.10:6443是http://10.10.0.2:8080/ -我这样配置

    • 我是微服务的新手。(学习阶段)。我有一个问题。我们在云中部署微服务。(例如 AWS)。云已经提供了负载平衡和日志。我们还在Spring Boot中实现了负载平衡(功能区)和日志(Rabbit MQ和Zipkin)。这两种实现有什么区别?我们两者都需要吗?有些人可以回答这些问题吗? 提前感谢。

    • 我正在尝试设置应用型负载均衡,以将流量转发到AWS中的Nginx入口控制器。要设置Nginx入口控制器,我使用的是从安装说明中获得的YML。 部署后,一切正常,流量正确转发到EKS pod。但是,上面的YML文件正在aws中创建“经典负载均衡器”,因为我想创建“应用型负载均衡器”。我将“service.beta.kubernetes.io/aws-load-balancer-type: elb”更

    • 我有一个弹性Beanstalk应用程序,最初配置为使用经典的负载平衡器。我发现这在通过WebSocket连接时会导致错误。因此,我将应用程序配置为使用应用程序负载平衡器,因为我被告知ALB支持WebSockets。然而,它们似乎没有:当我试图通过WebSocket连接到我的ALB时,会出现完全相同的错误。 ALB真的支持WebSocket吗?AWS文件在这方面存在矛盾。此页面表示它只支持HTTP和