首页 > 其他分享 >elasticsearch高可用 原理

elasticsearch高可用 原理

时间:2023-02-06 09:55:44浏览次数:40  
标签:可用 索引 Master elasticsearch es 分片 原理 节点 集群

elasticsearch高可用 原理 

ES是如何解决高可用

ES是一个分布式全文检索框架,隐藏了复杂的处理机制,核心数据分片机制、集群发现、分片负载均衡请求路由。

ES的高可用架构

 

 

ES基本概念名词

Cluster

代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。

es的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说的,因为从外部来看es集群,在逻辑上是个整体,你与任何一个节点的通信和与整个es集群通信是等价的。

Shards

代表索引分片,es可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上。构成分布式搜索。

[分片的数量只能在索引创建前指定,并且索引创建后不能更改。]

分片数由index.number_of_shards在索引创建的时候指定,如果需要修改主分片数,需要重建索引:
1 按照需要创建一个新的索引;
2 reindex把索引现有的数据同步到新索引中;
3 别名绑定新创建的索引上;

规避主分片不能修改的问题的方法,官方的说明:

我们当前的选择只有一个就是将数据重新索引至一个拥有更多分片的一个更大的索引,但这样做将消耗的时间是我们无法提供的。

[通过事先规划,我们可以使用 预分配 的方式来完全避免这个问题。]

replicas

代表索引副本,es可以设置多个索引的副本。

副本的作用:

1.是提高系统的容错性,当某个节点某个分片损坏或丢失时可以从副本中恢复。

2.是提高es的查询效率,es会自动对搜索请求进行负载均衡。

Recovery

代表数据恢复或叫数据重新分布,es在有节点加入或退出时会根据机器的负载对索引分片进行重新分配;

挂掉的节点重新启动时也会进行数据恢复。

ES集群中的五大角色

在Elasticsearch中,有五大角色,主要如下:

Master Node:主节点

主节点,该节点不和应用创建连接,每个节点都保存了集群状态.

master节点控制整个集群的元数据。

只有Master Node节点可以修改节点状态信息及元数据(metadata)的处理,比如索引的新增、删除、分片路由分配、所有索引和相关 Mapping 、Setting 配置等等。

Master eligible nodes:合格主节点

合格节点,每个节点部署后不修改配置信息,默认就是一个 eligible 节点.

有资格成为Master节点但暂时并不是Master的节点被称为 eligible 节点,该节点可以参加选主流程,成为Mastere节点.

该节点只是与集群保持心跳,判断Master是否存活,如果Master故障则参加新一轮的Master选举。

Data Node:数据节点

数据节点,改节点用于建立文档索引, 接收 应用创建连接、接收索引请求,接收用户的搜索请求

data节点真正存储数据,ES集群的性能取决于该节点的个数(每个节点最优配置的情况下),

data节点的分片执行查询语句获得查询结果后将结果反馈给Coordinating节点,在查询的过程中非常消耗硬件资源,如果在分片配置及优化没做好的情况下,进行一次查询非常缓慢(硬件配置也要跟上数据量)。

Coordinating Node:协调节点(/路由节点/client节点)

协调节点,该节点专用与接收应用的查询连接、接受搜索请求,但其本身不负责存储数据。

协调节点的职责:

接受客户端搜索请求后将请求转发到与查询条件相关的多个data节点的分片上,然后多个data节点的分片执行查询语句或者查询结果再返回给协调节点,协调节点把各个data节点的返回结果进行整合、排序等一系列操作后再将最终结果返回给用户请求。

搜索请求在两个阶段中执行(query 和 fetch),这两个阶段由接收客户端请求的节点 - 协调节点协调。

1.在请求query 阶段,协调节点将请求转发到保存数据的数据节点。 每个数据节点在本地执行请求并将其结果返回给协调节点。

2.在收集fetch阶段,协调节点将每个数据节点的结果汇集为单个全局结果集。

Ingest Node:ingest节点

ingest 节点可以看作是数据前置处理转换的节点,支持 pipeline管道 设置,可以使用 ingest 对数据进行过滤、转换等操作,类似于 logstash 中 filter 的作用,功能相当强大。

Ingest节点处理时机——在数据被索引之前,通过预定义好的处理管道对数据进行预处理。默认情况下,所有节点都启用Ingest,因此任何节点都可以处理Ingest任务。

标签:可用,索引,Master,elasticsearch,es,分片,原理,节点,集群
From: https://www.cnblogs.com/jjjjylstudy/p/17094520.html

相关文章

  • BP神经网络的数学原理及其算法实现
    什么是BP网络BP网络的数学原理BP网络算法实现 转载请声明出处http://blog.csdn.net/zhongkejingwang/article/details/44514073 上一篇文章介绍了KNN分类器,当......
  • numpy.ndarray原理与计算
    numpy.ndarray原理与计算Numpy的ndarray什么是Numpy的ndarray首先,Numpy的核心是ndarray。然后,ndarray本质是数组,其不同于一般的数组,或者Python的list的地方......
  • 虚函数(涉及汇编原理)
    虚函数1.多态​ 对象的多态性需要通过虚表和虚表指针来完成2.虚表指针1)位置​ 定义在对象首地址的前4字节处(32位)或前8个字节(64位)处2)定义​ 一个二维指针,一个存储......
  • Dubbo2.7的Dubbo SPI实现原理细节
    总结/朱季谦本文主要记录我对DubboSPI实现原理的理解,至于什么是SPI,我这里就不像其他博文一样详细地从概念再到JavaSPI细细分析了,直接开门见山来分享我对DubboSPI的见解......
  • 屏幕图像渲染原理
    对应一个客户端开发来说,平时做的的最多的就是写页面,所以有必要了解从视图代码到图像显示到屏幕上的整个过程和原理。下面以从视图代码到显示器图像的中间产物帧缓冲区图像......
  • RAM算法原理
    1应用场景 信道的不对称性和信道的高波动是移动环境中无线信道的两个显著特征。因此,当在车辆网络等移动环境中使用IEEE802.11设备时,有一个能够处理这些问题的有效速......
  • 《分布式技术原理与算法解析》学习笔记Day02
    分布式系统发展历程分布式的发展过程经历了三个阶段:单机模式(单兵模式)数据并行或者数据分布式(游击队模式)任务并行或者任务分布式(集团军模式)什么是单机模式,它的优缺点......
  • 使用kibana来进行ElasticSearch的信息查询检索
    大家经常会听到使用ELK搭建日志管理平台、完成日志聚合检索的功能,那么这个平台到底是个什么概念,怎么搭建,怎么使用呢?ELK包括ElasticSearch(数据存储、快速查询)、logstash(日志......
  • ElasticSearch分布式搜索引擎——从入门到精通
    ES分布式搜索引擎注意:在没有创建库的时候搜索,ES会创建一个库并自动创建该字段并且设置为String类型也就是text什么是elasticsearch?一个开源的分布式搜索引擎,可以用......
  • php操作ElasticSearch搜索引擎流程详解
    目录一、安装二、使用三、新建ES数据库四、创建表五、插入数据六、查询所有数据七、查询单条数据八、搜索九、测试代码〝古人学问遗无力,少壮功夫老始成〞......