面试题答案
一键面试自动创建索引机制基本工作原理
当Elasticsearch接收到一个文档,并且该文档要写入的索引不存在时,自动创建索引机制就会被触发。
触发自动创建的条件
- 写入操作:最常见的是通过索引文档的操作触发,例如使用
PUT /{index}/_doc/{id}
或者POST /{index}/_doc
这样的请求将文档写入一个不存在的索引。 - 别名操作:当尝试将别名指向一个不存在的索引时,如果启用了自动创建索引(默认开启),也会触发索引的自动创建。
创建过程中涉及的关键组件
- Cluster State:Elasticsearch的集群状态保存了整个集群的元数据信息,包括索引的设置、映射等。在自动创建索引时,会更新集群状态来反映新索引的创建。
- Master Node:负责协调索引的创建过程。当接收到自动创建索引的请求时,Master节点会验证请求的合法性,然后创建新索引的元数据,并将更新后的集群状态广播到所有节点。
- Index Modules:负责实际的索引创建工作,包括根据默认设置或请求中的设置来配置新索引的分片数、副本数等,同时也会创建默认的映射。
- Gateway:在索引创建后,新索引的元数据会被持久化到Gateway(如本地文件系统或共享存储),以便在节点重启或集群故障恢复时能够恢复索引状态。