服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - elasticsearch集群cluster主要功能详细分析

elasticsearch集群cluster主要功能详细分析

2022-11-16 14:50ychy Java教程

这篇文章主要为大家介绍了elasticsearch集群cluster主要功能详细分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

在源码概述中我们分析过,elasticsearch源码从功能上可以分为分布式功能和数据功能,接下来这几篇会就分布式功能展开。这里首先会对cluster作简单概述,然后对cluster所涉及的主要功能详细分析。

 elasticsearch的集群功能代码在cluster包中,通过ClusterService接口对外暴露。

cluster主要包括以下功能:

发现(Discovery),路由(routing),传送功能(transport),集群状态(clusterstates)等。

发现功能功能主要用于节点启动后发现集群,master向所有节点发布集群状态,选举master节点并引发集群节点变得事件;

routing记录了集群中各个shard的位置,为节点提供数据信息;

transport是节点间交流的主要通道,elasticsearch应用了netty框架实现了功能强大的transport功能;

集群状态(clusterstates)实现了一些集群状态,同时提供了一些方法,在集群每次变得时,master节点都会重新构建clusterstates,并将集群状态发送给每个节点。

节点根据cluster状态来确定某些操作是否能执行。

下图是显示了clusterstate的主要Fields

elasticsearch集群cluster主要功能详细分析

clusterstate的version是clusterstate的版本每次被更新它都会增加,routingTables包含了集群中所有索引的位置信息,nodes是当前集群中的所有节点,metaData是索引的一些元数据,blocks包含了集群的阻塞状态,

集群一共有三种阻塞级别:read,write和matedata;

status集群的状态有四种:unknown,RECEIVED,BEING_APPLIED,APPLIED。

集群功能的接口clusterservice的继承关系如下所示:

elasticsearch集群cluster主要功能详细分析

所有实现都在InternalClusterService中,它同时继承了AutoCloseAble接口和LifecycleComponent接口。

elasticsearch集群cluster主要功能详细分析

上图为clusterservice的方法,这些方法包括集群的启动与关闭,集群状态修改和发布及节点间ping通信等,这些方法只是从从内部看集群是不存在实体的,它的功能是由一个个节点实现的。因此对于集群的操作最终还是对每个节点的操作。单有些操作只能由master来进行,有些则是所有节点都需要进行的操作。每个加入集群后就会增加clusterstatelistener及localmasterlisener,但是clusterstate的发布则只能由master节点来实现。

以上就是对clusterservice的概述,限于篇幅。下一篇会对其进行详细分析,希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/zziawanblog/p/6507374.html

延伸 · 阅读

精彩推荐
  • Java教程Java设计模式之单例模式浅析

    Java设计模式之单例模式浅析

    这篇文章主要给大家介绍了关于Java单例模式,文中通过示例代码介绍的非常详细,对大家学习或者使用Java具有一定的参考学习价值,需要的朋友们下面来...

    吾日三省贾斯汀5542022-02-16
  • Java教程一篇文章教你如何用Java自定义一个参数校验器

    一篇文章教你如何用Java自定义一个参数校验器

    这篇文章主要介绍了使用java自定义一个参数校验器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下...

    一月三千五10512021-12-20
  • Java教程Java实现Flappy Bird游戏源码

    Java实现Flappy Bird游戏源码

    这篇文章主要为大家详细介绍了Java实现Flappy Bird游戏源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    sqh458710892021-06-24
  • Java教程Java并发系列之ConcurrentHashMap源码分析

    Java并发系列之ConcurrentHashMap源码分析

    这篇文章主要为大家详细分析了Java并发系列之ConcurrentHashMap源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    劳夫子4372021-04-15
  • Java教程spring boot装载自定义yml文件

    spring boot装载自定义yml文件

    这篇文章主要为大家详细介绍了spring boot装载自定义yml文件的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    在山的那边2552020-09-11
  • Java教程Java实现多选批量删除功能(vue+Element)

    Java实现多选批量删除功能(vue+Element)

    这篇文章主要为大家详细介绍了Java实现多选批量删除功能,包括前端vue实现代码文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可...

    Explorer_S5112021-12-05
  • Java教程Java 日志打印的15个好建议

    Java 日志打印的15个好建议

    这篇文章主要介绍了Java日志打印的15个好建议,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...

    jay@huaxiao5022022-01-17
  • Java教程详谈Java几种线程池类型介绍及使用方法

    详谈Java几种线程池类型介绍及使用方法

    下面小编就为大家带来一篇详谈Java几种线程池类型介绍及使用方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    Java之家1892020-08-26