MST
星途 面试题库

面试题:ElasticSearch并发控制类deciders中常用的decider有哪些及其作用

在ElasticSearch的并发控制类deciders中,列举几种常用的decider,并简要说明它们各自在并发控制场景下所起的作用。
40.7万 热度难度
数据库ElasticSearch

知识考点

AI 面试

面试题答案

一键面试

1. ClusterBlockDecider

  • 作用:用于检查集群是否处于被阻塞状态。例如,当集群执行某些维护操作(如全局的分片分配禁用)时,该decider会阻止新的写操作或其他可能影响集群状态的操作,确保集群在维护期间的稳定性,避免因不当操作导致数据不一致或集群状态混乱。

2. IndexBlockDecider

  • 作用:主要基于索引级别的设置来决定操作是否允许执行。比如某个索引被设置为只读状态,IndexBlockDecider会阻止对该索引的写操作,保证索引数据的完整性和安全性,防止误写或恶意修改索引数据。

3. ShardLimitDecider

  • 作用:对单个节点上的分片数量进行限制。在并发场景下,当有新的分片尝试分配到某个节点时,ShardLimitDecider会检查该节点当前的分片数量是否已经达到配置的上限。若达到上限,则阻止新分片的分配,避免单个节点因分片过多导致资源耗尽,影响整个集群的性能。

4. ThrottlingDecider

  • 作用:用于控制操作的速率。在高并发写入或查询场景下,为防止系统因负载过高而崩溃,ThrottlingDecider可以限制操作的频率。例如,限制每秒允许的写请求数量,使系统能够在其处理能力范围内稳定运行,避免因瞬间高并发请求压垮系统。