elasticsearch - 如果一个节点关闭,则禁用 ElasticSearch 重新平衡

标签 elasticsearch sharding

想象一下我有的情况

  • 3(AWS) 个节点
  • 具有 3 个分片和 1 个副本的索引(我们称之为 friend )。

S1(索引好友主分片 1)

S2(索引好友主分片 2)

S3(索引好友主分片 3)

R1(碎片 1 的副本)

R2(碎片 2 的副本) R3(碎片 3 的副本)

假设 Node1 有 (S1 R2) 并且是 master

节点2有(S2 R3)
Node3 有 (S3 R1)

现在,如果由于连接失败,节点 2 出现故障。

负载均衡将会发生并且 节点 1 将副本 (R2) 提升为主要副本,并且 (R2) 的新副本将在节点 3 中创建

最后负载均衡后会变成这样

节点1有(S1 S2, R3)
Node3 有 (S3 R1, R2)

在重新平衡繁重的 IO 操作期间,Elastic 搜索健康状况将变为红色 -> 黄色,然后变为绿色。

我的要求是,如果节点 2 宕机,节点不得重新平衡。如果查询结果只显示分片 S1 和 S3 的结果,我没问题。当节点 2 再次返回时,不应发生重新平衡。

最佳答案

您可以通过禁用分片分配来实现此目的。

curl -XPUT localhost:9200/_cluster/settings -d '{"transient":{"cluster.routing.allocation.enable": "none"}}'

如果您想重新打开分配:

curl -XPUT localhost:9200/_cluster/settings -d '{"transient":{"cluster.routing.allocation.enable": "all"}}'

关于elasticsearch - 如果一个节点关闭,则禁用 ElasticSearch 重新平衡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29251361/

相关文章:

amazon-web-services - 提供基于 IP 的访问策略时,无法从我的 VPN 访问 AWS Elasticsearch

linux - 为什么 echo 从不打印

elasticsearch - 通过忽略值大小写检查搜索

mongodb 分片复制成员 : could not find member to sync from

Mongodb 分片集群 $in VS $or

ruby-on-rails - Mongoid 是否存在缩放方面的困难?

Mongodb分片: Chunk split failed with Hashed Shard Key

Propel 中的数据库分片支持

elasticsearch - 如何将正在运行的 Elasticsearch 旧实例升级到新版本?

elasticsearch - Elasticsearch嵌套过滤器包含与不包含