面试题答案
一键面试allocators职责
- 分片分配:负责决定将索引的分片分配到哪些具体的节点上。例如,在创建新索引时,allocators会根据集群的当前状态(如节点负载、磁盘空间等),决定每个主分片和副本分片的最佳位置。
- 平衡集群负载:通过合理分配分片,使集群中各个节点的负载相对均衡。避免某些节点负载过高,而其他节点资源闲置的情况。比如,将高负载索引的部分分片迁移到负载较低的节点。
deciders职责
- 节点资格判定:检查节点是否具备接收新分片的条件。例如,判断节点的磁盘空间是否充足,如果磁盘使用率超过了设定的阈值,deciders可能拒绝该节点接收新的分片。
- 健康检查:评估分配操作对集群健康状态的影响。例如,当某个节点故障后,deciders会判断重新分配相关分片是否会导致集群进入不健康状态,如副本分片不足等情况。
协作过程
- allocators发起提议:allocators首先根据集群状态和负载情况,生成一个或多个关于分片分配的提议,即建议将某些分片分配到特定的节点。
- deciders评估提议:deciders收到allocators的提议后,依据自身的判定规则,如节点资源条件、集群健康规则等,对提议进行评估。如果提议符合所有规则,deciders批准该提议,分片就会按照allocators的提议进行分配;如果提议不符合某些规则,deciders拒绝该提议,allocators需要重新生成新的分配提议,再次提交给deciders评估,直到找到一个能被deciders批准的分配方案。