同一机器上,部署多个es节点,防止副本和主分片分配到同一机器上
例如:es节点a、b、c部署在01机器上,节点d、e、f部署在02机器上
es2.4版本配置
a、b、c节点yaml配置:node.rack: aaa
d、e、f节点yaml配置:node.rack: bbb
调用api设置机架感知生效,"cluster.routing.allocation.awareness.attributes": "rack"
集群会重分配部分分片。当部分多于node节点数时,无法分配。
curl --location 'http://es:9200/_cluster/settings' \
--data ''
curl --location --request PUT 'http://es:9200/_cluster/settings' \
--header 'Content-Type: application/json' \
--data '{
"persistent": {
"cluster.routing.allocation.awareness.attributes": "rack"
}
}'
参考文档:Shard Allocation Awareness | Elasticsearch Guide [2.4] | Elastic