Elasticsearch架构基本原理

Elasticsearch的架构原理可以详细分为以下几个方面进行介绍:

一、Elasticsearch基本概念

Elasticsearch(简称ES)是一个基于Lucene构建的开源、分布式、RESTful搜索和分析引擎。它支持全文搜索、结构化搜索、半结构化搜索、数据分析、地理位置和对象间关联关系搜索等功能。ES使用Java编写,隐藏了Lucene的复杂性,为开发者提供了一套统一的API和client。

二、Elasticsearch节点类型

  1. Master节点:
    • 主要负责:管理索引(如创建、删除索引)、分配分片、维护元数据、管理集群节点状态。
    • 特点:不负责数据写入和查询,比较轻量级。
    • 选举过程:通过Zen Discovery机制找到集群中的其他节点,并建立连接,然后从候选主节点中选举出一个主节点。
  2. DataNode节点:
    • 主要负责:数据写入、数据检索。大部分ES的压力都集中在DataNode节点上。
    • 特点:可以保存数据的节点,负责保存分片数据。
    • 决策:由Master Node决定如何把分片分发到数据节点上。
  3. 其他节点类型:
    • Master eligible nodes:可以参与选举的合格节点,每个节点启动后默认就是一个Master eligible节点。
    • Ingest Node:数据前置处理转换节点,支持pipeline管道设置,用于对数据进行过滤、转换等操作。
    • Machine Learning Node:负责运行机器学习的Job,用于异常检测等。

三、分片和副本机制

  1. 分片(Shard):
    • ES将索引的数据分成若干部分,分布在不同的服务器节点中。每个分片是一个独立的、可读写的Lucene索引。
    • 主分片数在索引创建时指定,后续不允许修改。
  2. 副本分片(Replica Shard):
    • 是主分片的拷贝,用于实现数据的冗余和高可用性。
    • 每个分片可以有多个副本分片,副本分片可以分布在不同的节点上。

四、Elasticsearch重要工作流程

  1. 文档写入原理:
    • 选择任意一个DataNode发送请求,该节点成为coordinating node(协调节点)。
    • 通过路由计算公式确定文档要写入的分片。
    • coordinating node将请求转发给对应的primary shard所在的DataNode。
    • Primary Shard处理请求,写入数据到索引库中,并将数据同步到Replica shard。
  2. 检索原理:
    • client发起查询请求,某个DataNode接收到请求后成为coordinating node。
    • coordinating node将查询请求广播到每一个数据节点,数据节点的分片处理查询请求。
    • 各分片将符合条件的数据返回给coordinating node,coordinating node汇总并排序结果后返回给client。

五、数据存储与索引

  • ES使用Lucene作为其底层数据存储引擎,数据存储在Lucene索引中。
  • ES支持近实时索引,通过refresh、flush和segment合并等机制确保数据的快速检索和更新。

六、集群管理

  • ES通过HTTP协议进行节点之间的通信,实现集群的状态管理和数据同步。
  • 支持集群的弹性伸缩,可以通过添加或移除节点来调整集群的规模。

以上是对Elasticsearch架构原理的详细介绍,涵盖了其基本概念、节点类型、分片和副本机制、重要工作流程、数据存储与索引以及集群管理等方面。

后续会持续更新分享相关内容,记得关注哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/38802.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[数据集][目标检测]城市街道井盖破损未盖丢失检测数据集VOC+YOLO格式4404张5类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):4404 标注数量(xml文件个数):4404 标注数量(txt文件个数):4404 标注…

note-网络是怎样连接的6 请求到达服务器,响应返回浏览器

助记提要 服务器程序的结构套接字的指代方式MAC模块的接收过程IP模块的接收过程TCP模块处理连接包TCP模块处理数据包TCP模块的断开操作URI转换为实际文件路径URI调用程序Web服务器访问控制响应内容的类型 6章 请求到达服务器,响应返回浏览器 1 服务器概览 在数据…

昇思25天学习打卡营第03天 | 张量 Tensor

昇思25天学习打卡营第03天 | 张量 Tensor 文章目录 昇思25天学习打卡营第03天 | 张量 Tensor张量张量的创建张量的属性Tensor与NumPy转换稀疏张量CSRTensorCOOTensor 总结打卡 张量 张量(Tensor)是一种类似于数组和矩阵的特殊数据结构,是神经…

MATLAB|更改绘图窗口的大小和位置

MATLAB绘图 plot、plot3、cdfplot都适用 效果 如下图,运行程序后可以直接得到这两个绘图窗口。 右上角的Figure1是原始图片,右下角的Figure2是调整了位置和大小后的绘图窗口。 完整源代码 % 绘图大小和位置调整 % Evand©2024 % 2024-7-1/Ver1…

Transformer模型原理细节解析

基本原理: Transformer 的核心概念是 自注意力机制(Self-Attention Mechanism),它允许模型在处理每个输入时“关注”输入序列的不同部分。这种机制让模型能够理解每个单词或符号与其他单词或符号之间的关系,而不是逐个地线性处理输入。 Transformer 主要由两个部分组成:…

手把手教你搭建PyTorch环境:MindStudio中PyTorch模型开发实战

本次实验的视频链接如下:​https://www.bilibili.com/video/BV1iA4y1f7o1/ 本次实验在MindStudio上进行,请先按照 教程 配置环境,安装MindStudio。 ​ MindStudio的是一套基于华为自研昇腾AI处理器开发的AI全栈开发工具平台,该IDE上功能很多…

Boost 智能指针

scoped_ptr 不能被复制或赋值给其他 scoped_ptr 对象,不能与其他指针比较 (除了 nullptr) scoped_ptr 用例 template <typename T> class scoped_ptr {public:// 构造函数:初始化 scoped_ptr 并接管指针的所有权explicit scoped_ptr(T* ptr = nullptr) : ptr_(ptr) …

Flink CDC的使用

MySQL数据准备 create database if not exists test; use test; drop table if exists stu; create table stu (id int primary key auto_increment, name varchar(100), age int); insert into stu(name, age) values("张三",18); insert into stu(name, age) valu…

ESOP 系统助力电子设备公司的管理模式升级

在科技飞速发展的时代&#xff0c;电子设备行业竞争愈发激烈&#xff0c;企业要想在市场中立足并持续发展&#xff0c;不断升级管理模式成为关键。ESOP系统的引入&#xff0c;为电子设备公司带来了全新的机遇&#xff0c;有力地推动了管理模式的升级。 ESOP 系统首先为电子设备…

element el-table表格切换分页保留分页数据+限制多选数量

el-table表格并没有相关的方法来禁用表头里面的多选按钮 那么我们可以另辟蹊径&#xff0c;来实现相同的多选切换分页&#xff08;保留分页数据&#xff09; 限制多选数量的效果 <el-table:data"tableData"style"width: 100%">// 不使用el-talbe自带…

农村程序员陈随易2024年中总结

今天是 2024年7月1日&#xff0c;时间如白驹过隙&#xff0c;今年已去其一半。 总结一下今年上半年的情况&#xff0c;给大家提供一些参考和建议。 希望大家关注一下公众号 陈随易&#xff0c;有些内容只在公众号发表。 先看看我的年初计划&#xff0c;这个在今年年初的时候&…

泛微E9开发 限制明细表列的值重复

限制明细表列的值重复 1、需求说明2、实现方法3、扩展知识点3.1 修改单个字段值&#xff08;不支持附件类型&#xff09;3.1.1 格式3.1.2 参数3.1.3 案例 3.2 获取明细行所有行标示3.2.1 格式3.2.2 参数说明 1、需求说明 限制明细表的“类型”字段&#xff0c;在同一个流程表单…

【全网首发】双字重叠语序验证码识别

【省流&#xff1a;打算直接测试效果的可以访问这个网址】 http://decaptcha.ai?project_namenetease_zh_overlap 【实现方案】 如图所示&#xff0c;我们能看到&#xff0c;比起以往的“单个字”语序点选&#xff0c;这个验证码的难点在于“重叠汉字“&#xff0c;我们知道…

【Python机器学习】模型评估与改进——简单的网格搜索

为了提升模型的泛化性能&#xff0c;我们可以通过调参来实现。 在尝试调参之前&#xff0c;重要的是理解参数的含义&#xff0c;找到一个模型的重要参数&#xff08;提供最佳泛化性能的参数&#xff09;的取值是一项棘手的任务&#xff0c;但对于几乎所有模型和数据集来说都是…

API-Window对象

学习目标&#xff1a; 掌握Window对象 学习内容&#xff1a; BOM&#xff08;浏览器对象模型&#xff09;定时器-延时函数JS执行机制location对象navigation对象history对象 BOM&#xff08;浏览器对象模型&#xff09;&#xff1a; BOM是浏览器对象模型。 window对象是一个全…

Windows 11的市场份额越来越大了,推荐你升级!

7月1日&#xff0c;系统之家发布最新数据&#xff0c;显示Windows 11操作系统的市场份额正在稳步上升。自2021年10月Windows 11发布以来&#xff0c;Windows 10一直占据着市场主导地位&#xff0c;当时其市场份额高达81.44%。然而&#xff0c;随着时间的推移&#xff0c;Window…

鸿蒙学习1:ArkTS基础入门

1 变量和常量 1.1 变量 常见的基础数据类型&#xff1a; string 字符串、number 数字、boolean布尔 判断。 变量&#xff1a;专门用来存储数据的容器。 语法&#xff1a;let 变量名: 数据类型 值。例如&#xff1a;let name: 张三;let price:number 12.4; let isSuccess …

【triton-inference-server】 官方python_backend 文档及例子

https://github.com/triton-inference-server/python_backend#building-from-source 一。 从源码构建python_backend root@ubuntu-server:/home/ubuntu/hzh# sudo apt-get install rapidjson-dev libarchive-dev zlib1g-dev Reading package lists... Done Building dependency…

vue3中的自定义指令

全局自定义指令 假设我们要创建一个全局指令v-highlight&#xff0c;用于高亮显示元素。这个指令将接受一个颜色参数&#xff0c;并有一个可选的修饰符bold来决定是否加粗文本。 首先&#xff0c;在创建Vue应用时定义这个指令&#xff1a;&#xff08;这里可以将指令抽离成单…

昂科烧录器支持BPS晶丰明源半导体的多相Buck控制器BPD93004E

芯片烧录行业领导者-昂科技术近日发布最新的烧录软件更新及新增支持的芯片型号列表&#xff0c;其中BPS晶丰明源半导体的多相Buck控制器BPD93004E已经被昂科的通用烧录平台AP8000所支持。 BPD93004E是一款多相Buck控制器&#xff0c;支持原生1~4相&#xff0c;数字方式控制&am…