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

clusterstate的version是clusterstate的版本每次被更新它都会增加,routingTables包含了集群中所有索引的位置信息,nodes是当前集群中的所有节点,metaData是索引的一些元数据,blocks包含了集群的阻塞状态,集群一共有三种阻塞级别:read,write和matedata;status集群的状态有四种:unknown,RECEIVED,BEING_APPLIED,APPLIED。
集群功能的接口clusterservice的继承关系如下所示:

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

上图为clusterservice的方法,这些方法包括集群的启动与关闭,集群状态修改和发布及节点间ping通信等,这些方法只是从从内部看集群是不存在实体的,它的功能是由一个个节点实现的。因此对于集群的操作最终还是对每个节点的操作。单有些操作只能由master来进行,有些则是所有节点都需要进行的操作。每个加入集群后就会增加clusterstatelistener及localmasterlisener,但是clusterstate的发布则只能由master节点来实现。
以上就是对clusterservice的概述,限于篇幅。下一篇会对其进行详细分析。
elasticsearch cluster 概述的更多相关文章
- elasticsearch cluster 详解
上一篇通过clusterservice对cluster做了一个简单的概述, 应该能够给大家一个初步认识.本篇将对cluster的代码组成进行详细分析,力求能够对cluster做一个更清晰的描述.clu ...
- SearchServer Elasticsearch Cluster / kibana
S 使用nginx代理kibana并设置身份验证 https://blog.csdn.net/wyl9527/article/details/72598112 使用nginx代理kibana并设置身份 ...
- Elasticsearch cluster health: yellow unassigned shards
查看ES各个分片的状态 $ curl -XGET http://127.0.0.1:9200/_cluster/health?pretty { "cluster_name" : & ...
- ProxySQL Cluster 概述
文章转载自:https://blog.csdn.net/n88Lpo/article/details/79608639 前言 在ProxySQL 1.4.2 之前,ProxySQL 单点的解决方法有配 ...
- cluster discovery概述及FaultDetection分析
elasticsearch cluster实现了自己发现机制zen.Discovery功能主要包括以下几部分内容:master选举,master错误探测,集群中其它节点探测,单播多播ping.本篇会首 ...
- MySQL Cluster配置概述
一. MySQL Cluster概述 MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的 Cluster .通过无共享体系结构,系统能够使用廉价的硬件,而 ...
- 最完整的Elasticsearch 基础教程
翻译:潘飞(tinylambda@gmail.com) 基础概念 Elasticsearch有几个核心概念.从一开始理解这些概念会对整个学习过程有莫大的帮助. 接近实时(NRT) Ela ...
- ElasticSearch实战-入门
http://www.cnblogs.com/smartloli/ 1.概述 今天接着<ElasticSearch实战-日志监控平台>一文来给大家分享后续的学习,在<ElasticS ...
- ElasticSearch实战
ElasticSearch实战-入门 1.概述 今天接着<ElasticSearch实战-日志监控平台>一文来给大家分享后续的学习,在<ElasticSearch实战-日志监控平台& ...
随机推荐
- 【实用篇】获取Android通讯录中联系人信息
第一步,在Main.xml布局文件中声明一个Button控件,布局文件代码如下: <LinearLayout xmlns:android="http://schemas.android ...
- js实现导出数据到excel
来自:http://www.imooc.com/article/13374 //html代码<!DOCTYPE HTML> <html> <head> <ti ...
- Linux 桌面的 Dock 类程序
1.Cairo-Dock是一个Dock类软件,它支持OpenGL.提供动画及视觉效果的插件.新的Applet.重写配置面板.新增主题等功能. 2.Docky是从GNOME Do项目剥离出来的一个Doc ...
- selenium无法定位元素问题
在用自动化测试工具selenium完成下载任务时,经常会遇到定位不到元素的情况,总结如下: 1.frame/iframe原因定位不到元素: 这个是最常见的原因,首先要理解下frame的实质,frame ...
- Windows学习总结(6)——MindManager新手入门教程
MindManager新手入门教程 MindManager是一款创造.管理和交流思想的思维导图软件,其直观清晰的可视化界面和强大的功能可以快速捕捉.组织和共享思维.想法.资源和项目进程等等.MindM ...
- 三种连接 & DOS & SYNFLOOD & 防御
accept的时候,三次连接是建立的. 有一种DOS攻击是SYN FLOOD,就是大量的SYN到达,但是没有ACK,无法建立起连接. 防御的方法,有多种,如下: 比如,禁止部分源地址: 到达一定阈值之 ...
- PHP开发常规安全问题总结
文章来源:PHP开发学习门户 地址:http://www.phpthinking.com/archives/575 php给了开发人员极大的灵活性,可是这也为安全问题带来了潜在的隐患,最近须要总结一下 ...
- js---05 自定义属性
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...
- sql创建外键
建立外键关系:先建主表再见从表:主表:create table zhu(code int parimary key,name varchar(20)) ;从表:create table cong(co ...
- array01.js
//1.获取指定范围内的随机数 function getRadomNum(min,max){ return Math.floor(Math.random() * (max - min + 1)) + ...