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实战-日志监控平台& ...
随机推荐
- WebSocket 笔记
WebSocket介绍 WebSocket+Flask开启一个WebSocket服务 群聊小Demo 私聊小Demo WebSocket介绍 - 菜鸟教程详解连接 - 下载:pip install g ...
- ADO.NET数据读取封装
public class sqlserver { //private string sqlstr = System.ConfigurationManager.ConnectionStrings[&qu ...
- Ionic2集成ArcGIS JavaScript API.md
1. Ionic同原生ArcGIS JavaScript API结合 1.1. 安装esri-loader 在工程目录下命令行安装: npm install angular2-esri-loader ...
- tensorflow学习之路-----简单卷积神经网路
import tensorflow as tf#取数据,目的是辨别数字from tensorflow.examples.tutorials.mnist import input_data'''手动添加 ...
- Nginx安装与升级(包括虚拟主机)
Nginx WEB服务器最主要就是各种模块的工作,模块从结构上分为核心模块.基础模块和第三方模块,其中三类模块分别如下: 核心模块:HTTP模块.EVENT模块和MAIL模块等: 基础模块:HTTP ...
- javaweb:判断当前请求是否为移动设备访问
http://blog.csdn.net/educast/article/details/71157932
- cogs 1456. [UVa 10881,Piotr's Ants]蚂蚁
1456. [UVa 10881,Piotr's Ants]蚂蚁 ★ 输入文件:Ants.in 输出文件:Ants.out 简单对比时间限制:1 s 内存限制:128 MB [题目描述 ...
- 測试password强度
<html> <!--激情在最后面.请看最后面红色字 这是是个计算password强度的实例 网上有非常多这种样例 只是呢,都不怎么好 这是我写的一个完整的效果,能够通用, new一 ...
- Lucene-全文索引
近期接触了lucene,我想也有非常多人以前听过,于是带着好奇心,我開始对lucene进行了解,给我影响最深的是它非常多的应用了索引表,这个工具之所以快是就是由于大量引用到了索引表.今天仅仅说下我刚開 ...
- UDP连接调用connect()函数
UDP是一个无连接的协议,它没有像TCP中EOF之类的东西. 8.11 UDP的connect函数 除非套接字已连接,否则异步错误是不会反悔到UDP套接字的. 我们确实能够给UDP套接字调用conne ...