如果一个节点关闭,则禁用 ElasticSearch 重新平衡
Disable ElasticSeach re-balancing if one node is down
想象一下我遇到的情况
- 3(AWS) 个节点
- 具有 3 个分片和 1 个副本的索引(让我们称之为朋友)。
S1(索引好友主分片 1)
S2(索引好友主分片 2)
S3(索引好友主分片 3)
R1(碎片 1 的副本)
R2(碎片 2 的副本)
R3(碎片 3 的副本)
假设 Node1 有 (S1 R2) 并且是 master
节点 2 有 (S2 R3)
节点 3 有 (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"}}'
想象一下我遇到的情况
- 3(AWS) 个节点
- 具有 3 个分片和 1 个副本的索引(让我们称之为朋友)。
S1(索引好友主分片 1)
S2(索引好友主分片 2)
S3(索引好友主分片 3)
R1(碎片 1 的副本)
R2(碎片 2 的副本) R3(碎片 3 的副本)
假设 Node1 有 (S1 R2) 并且是 master
节点 2 有 (S2 R3)
节点 3 有 (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"}}'