【问题标题】:Elasticsearch nodes balancingElasticsearch 节点平衡
【发布时间】:2019-11-13 03:00:50
【问题描述】:

我有 4 个节点的弹性搜索集群(ES 1.3.5):

1x c4.xlarge 客户端节点

主人:假

数据:假

c4.xlarge 的 3 倍

主人:是的

数据:真实

index.number_of_shards: 1

index.number_of_replicas: 2

discovery.zen.minimum_master_nodes: 2

应用程序向客户端节点发送请求,客户端节点应该将它们负载平衡到不同的集群节点(据我所知)。但似乎只有一个集群节点(被选为主节点)处理查询并承担所有负载。

如何平衡所有节点的负载?

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    您可以对负载平衡做一些事情,但我还提供了一些步骤来提高性能,因为仅负载平衡不会给您带来效率(我认为这就是您对负载有疑问的原因平衡)。

    • 增加分片数量,因为您至少需要 4 个分片,因为您有 4 个节点(shard=Elasticsearch 在集群中分发数据的单位)。
    • 查看分片大小并根据需要进行调整和更改(几 GB 到几十 GB)
    • 理想情况下,您需要分配的分片是初始配置中节点数的 1.5 到 3 倍

    仅供参考,我提供了来自 Elastic Search 的创建者的相关且有用的文章 - https://www.elastic.co/blog/how-many-shards-should-i-have-in-my-elasticsearch-cluster

    【讨论】:

    • 按初始配置中节点数的 1.5 到 3 倍分配分片。最小值 = 4
    • 一个节点 - 是一个客户端节点,也许不需要将它包含在计算中?还是没关系?我有大约 25GB 的数据分为 7 种类型,我从 3 个分片开始,现在负载平衡很好。为了测试性能,我将来会尝试将数字增加到 6。谢谢
    【解决方案2】:

    您应该增加分片的数量。一个分片意味着单个节点将保存您的所有索引。因此,当发送查询时,只有一个节点会处理该查询。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-17
      • 2021-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-20
      相关资源
      最近更新 更多