Cluster 模块封装了集群层面要执行的任务

ElasticSearch 源码分析 十三 集群

ElasticSearch 源码分析 十三 集群

ElasticSearch 源码分析 十三 集群

ElasticSearch 集群的两个主要service

MasterService :负责集群任务管理,运行。对外提供提交任务的接口,接收到任务后,内部维护一个线程池来运行这些任务。

ElasticSearch 源码分析 十三 集群

ElasticSearch 源码分析 十三 集群

上图已经展示出,把任务提交到线程池,底层实现为PrioritizedEsThreadPoolExecutor

ElasticSearch 源码分析 十三 集群

这个service 主要是处理集群状态和监听器

ElasticSearch 源码分析 十三 集群

ElasticSearch 源码分析 十三 集群

运行集群任务,在MasterService 的 doStart方法,如下

ElasticSearch 源码分析 十三 集群

提交集群任务,在ClusterApplierService的submitStateUpdateTask ,提交集群状态更新的task。然后调用线程池执行任务

ElasticSearch 源码分析 十三 集群

提交的线程池,具体实现同上,为ES的优先级线程池PrioritizedEsThreadPoolExecutor

任务的执行 :看runTasks

1.校验当前master service 必须是已启动 started

2.校验当前节点必须是master节点

3.然后构建clusterChangedEvent,调用集群发布器发布这个集群变更事件

ElasticSearch 源码分析 十三 集群

ElasticSearch 源码分析 十三 集群

ElasticSearch 源码分析 十三 集群

ElasticSearch 源码分析 十三 集群

ElasticSearch 源码分析 十三 集群

ElasticSearch 源码分析 十三 集群

ElasticSearch 源码分析 十三 集群

ElasticSearch 源码分析 十三 集群

ElasticSearch 源码分析 十三 集群

ElasticSearch 源码分析 十三 集群

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章:

  • 2018-11-21
  • 2018-11-26
  • 2018-11-30
  • 2020-02-26
  • 2018-11-21
  • 2022-01-10
  • 2022-01-05
猜你喜欢
  • 2022-01-11
  • 2021-10-11
  • 2021-09-11
  • 2021-11-28
  • 2020-01-03
  • 2021-03-01
  • 2021-12-28
  • 2021-08-03
相关资源
相似解决方案