当前位置: 首页 > 面试题库 >

是否需要在ElasticSearch中使用负载均衡器?

季凡
2023-03-14
问题内容

我有一个在AWS EC2上运行的3个ElasticSearch节点集群。这些节点是使用OpsWorks /
Chef设置的。我的目的是将该群集设计为非常有弹性和弹性(需要时,节点可以进出)。

从我阅读的有关ElasticSearch的所有内容来看,似乎没有人建议将负载均衡器放在集群的前面。相反,似乎建议您执行以下两项操作之一:

  1. 将您的客户端指向一个节点的URL / IP,让ES为您完成负载平衡,并希望该节点永远不会出现故障。

  2. 将所有节点的URL / IP硬编码到客户端应用程序中,并让该应用程序处理故障转移逻辑。

我的背景主要是在Web场中,创建一个巨大的自治Web服务器池,在它们前面放一个ELB,然后让负载均衡器确定哪些节点是活动的还是死亡的只是常识。为什么ES似乎不支持这种相同的体系结构?


问题答案:

您不需要负载平衡器-ES已经提供了该功能。您可能只是另一个组件,它可能行为不当,并且会添加不必要的网络跃点。

ES将分片您的数据(默认为5个分片),它将尝试在您的实例之间平均分配。在您的情况下,2个实例应具有2个分片,而1个只有一个,但是您可能需要将分片更改为6个以实现均等分布。

默认情况下,复制设置为"number_of_replicas":1,因此每个分片都有一个副本。假设您正在使用6个分片,则看起来可能像这样(R是复制的分片):

  • node0:1,4,R3,R6
  • 节点1:2、6,R1,R5
  • 节点2:3、5,R2,R4

假设node1死了,集群将更改为以下设置:

  • node0:1、4、6,R3 +新副本R5,R2
  • node2:3、5、2,R4 +新副本R1,R6

根据您的连接设置,您可以连接到一个实例(传输客户端),也可以加入群集(节点客户端)。使用节点客户端,您将避免双跳,因为您将始终连接到正确的分片/索引。使用传输客户端,您的请求将被路由到正确的实例。

因此,没有什么可以自己平衡负载的,您只需增加开销即可。自动群集可能是ES的最大优势。



 类似资料:
  • 问题内容: 我对我的Elasticsearch集群如何处理流量感到有些困惑。我在群集中连接了多个EC2实例。现在,在我的应用程序中,我将其设置为通过实例之一的ip连接到集群。我知道此节点随后可以与集群中的所有其他节点连接并进行适当的转发,但是由于所有流量最初都定向到该节点时,该特定实例是否不会变得过重?我必须先使用负载均衡器,然后将应用程序指向该负载均衡器,还是我不能正确理解这一点? 谢谢!:)

  • 负载均衡(Load balancing)是一种计算机网络技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最佳化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。 使用带有负载均衡的多个服务器组件,取代单一的组件,可以通过冗余提高可靠性。负载均衡服务通常是由专用软体和硬件来完成。 负载均衡最重要的一个应用是利用多台服务器提供单一服务,这种方案有

  • 负载均衡包括负载均衡实例、访问控制及证书。 实例 负载均衡实例是一个运行的负载均衡服务,通过设置的虚拟IP接收流量并将其转发分配给后端服务器。 访问控制 访问控制用于设置访问负载均衡的IP白名单或IP黑名单。 证书 当在负载均衡实例上配置HTTPS监听转发来自HTTPS协议的请求时,需要配置证书。

  • 一个简单的负载均衡的示例,把www.domain.com均衡到本机不同的端口,也可以改为均衡到不同的地址上。> http { : upstream myproject { : server 127.0.0.1:8000 weight=3; : server 127.0.0.1:8001; : server 127.0.0.1:8002; : server 127.0.0.1:8003; : }

  • SOFARPC 提供多种负载均衡算法,目前支持以下五种: 类型 名称 描述 random 随机算法 默认负载均衡算法。 localPref 本地优先算法 优先发现是否本机发布了该服务,如果没有再采用随机算法。 roundRobin 轮询算法 方法级别的轮询,各个方法间各自轮询,互不影响。 consistentHash 一致性hash算法 同样的方法级别的请求会路由到同样的节点。 weightRou

  • 我计划在谷歌云平台上为1700多个域(不同的网站)设置HTTP/HTTPS负载平衡(https://cloud.google.com/compute/docs/load-balancing/http/);所有人都将拥有TLS/SSL。但是,每个负载均衡器最多只能添加10个SSL证书,如下所示:https://cloud.google.com/compute/docs/load-balancing/