首页 » Web前端 » php创立es索引技巧_Elasticsearch创建索引流程

php创立es索引技巧_Elasticsearch创建索引流程

访客 2024-12-16 0

扫一扫用手机浏览

文章目录 [+]

我们延续上一篇来研究一下ES实际是怎么处理创建索引的流程的,我们根据代码一层层点进去看一下

我们瞥见了什么,这个便是包装了创建索引干系的一些信息,如:路径、以及实体类;根据这个里面的name进行转发,上一篇末了讲了

php创立es索引技巧_Elasticsearch创建索引流程

这里通过client直接实行的

php创立es索引技巧_Elasticsearch创建索引流程
(图片来自网络侵删)

这里的client须要把稳,是在node构建的时候创建的NodeClient

在实行execute方法时会走到父类AbstractClient里面去,这个里面就调用了子类实现的doExecute方法

这个方法很主要,这个里面会根据我们传入的action在map里获取他实际实行的TransportAction

这个方法的实现有很多类,但是我们想看的是创建索引的逻辑,以是我们找到TransportCreateIndexAction的实现

TransportCreateIndexAction里面比较主要的方法便是createIndex,我们点进去看一下

我们一贯点进去看一下,实在我们也可以猜想到,后面肯定会提交给一个线程池去实行

瞥见没有,这里确实是交给了一个线程池去处理

而且还是一个优先级线程池,线程池的源码我们就不展开讲了,后续会有文章专门讲线程池源码的

我在回过分看看提交的IndexCreationTask线程里面的逻辑

IndexCreationTask.execute里面比较关键的代码便是这一行,在做事器节点创建索引

我们点进去看一下,createIndexService方法一看便是和创建索引干系的逻辑,在连续点进去

我们可以瞥见创建的IndexService这个类封装了比较核心的创建Shard和删除Shard方法

在便是这里会通过传入的index数据创建一个IndexMetaData(索引元数据)的布局器,在通过布局器模式创建出来索引元数据

根据新的元数据构建一个新的集群状态并且返回

索引创建成功之后则等待指天命量Shard启动

如果为0直接返回

监听集群状态是否发生变革

有发生变革并且知足条件回调监听器的onNewClusterState方法

这个方法会直接将标志位修正为true

标志位为true返回相应

标签:

相关文章