Elasticsearch 索引分片的分配策略说明
在上一篇《索引生命周期管理ILM看完不懂你锤我
》(https://mp.weixin.qq.com/s/ajhFp-xBU1dJm8a1dDdRQQ)中,我们已经学会了索引级别的分片分配过滤属性,也就是在配置文件中指定当前节点的属性值node.attr.node_type: hot
,这个你还记得吗,不记得的话可以回去在复习一下哦。
这一篇文章中,我们主要学习一下索引分片的分配策略,也就是分片时是根据什么规则进行分配的呢?
版本:Elasticsearch 8.1
一、索引级自定义属性分片分配策略
我们有 5
个节点,node-1,node-2,node-3 增加属性 node.attr.role: master
,node-4,node-5 增加属性 node.attr.role: slave
。
elasticsearch.yml
文件中配置如下:
node-1,node-2,node-3
# node-1,node-2,node-3
node.attr.role: master
node-4,node-5
# node-4,node-5
node.attr.role: slave
定义索引zfc-doc-000013
,指定index.routing.allocation.include.role
为slave
,意思就是该索引分片只分配到node.attr.role
的值为slave
的节点上。
PUT zfc-doc-000013
{
"settings": {
"number_of_replicas": 0,
"number_of_shards": 3,
"index.routing.allocation.include.role":"slave"
}
}
当前集群为 5
个节点的集群,其中只有 node-4
、node-5
的 role
为 slave