当前位置: 首页 > news >正文

【elastic search】详解elastic search集群

目录

1.与集群有关的一些概念

2.集群搭建

3.集群搭建

4.kibana链接集群

5.选举流程

6.请求流程

7.master的作用


1.与集群有关的一些概念

数据分片:

数据分片(shard),单台服务器的存储容量是有限的,把一份数据切分成很多份,每一份存储到不同的节点上去,从而减少单台的压力。

数据副本:

数据副本(replica),在分布式集群中,如果不做备份,单点故障会硬气数据丢失,应对办法是将一份数据复制成很多份,一份就是一个副本,将副本存储到不同的节点上去。

es在创建索引的时候会指定每个索引的数据分片喝数据副本各自的数量:

put /yx
{"settings":{"number_of_shards": 3,//分片数"numbser_of_replicas": 1//副本数}
}

2.集群搭建

集群规划:

cluster name,集群名称,同一集群下,所有node的cluster name要相同。

Node Namecluster nameiphttptcp
node-01yx-elastic127.0.0.192019301
node-02yx-elastic127.0.0.192029302
node-03yx-elastic127.0.0.192039303

3.集群搭建

elasticsearch.yml:

三个节点的区别只在于node.name、数据路径、日志路径、http端口、tcp端口不同,其它都相同,此处以node-01为例。

#允许跨名访问
http.cors.enabled: true
#当设置允许跨域,默认为, 表示支持所有域名
http.cors.allow-origin: "*"
#允许所有节点访问
network.host: 0.0.0.0
#集群的名称,同一个集群下所有节点的集群名称应该一致
cluster.name: yx-elasticsearch
#当前节点名称 每个节点不一样
node.name: node-01
#数据的存放路径,每个节点不一样,不同es 服务器对应的data和log存储的路径不能一样
path.data: D:\es\elasticsearch-9301\data
#日志的存放路径
path.logs: D:\es\elasticsearch-9301\logs
#HTTP协议的对外端口,每个节点不一样,默认: 9200
http.port: 9201
#TCP协议对外端口 每个节点不一样,默认: 9300
transport.tcp.port: 9301
#三个节点相互发现,包含自己,使用TCP协议的端口号
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9301","127.0.0.1:9302","127.0.0.1:9303"]
#声明大于几个的投票主节点有效,设置为(nodes / 2) + 1
discovery.zen.minimum_master_nodes: 2
#是否为主节点
node.master: true

4.kibana链接集群

kibana.yml:

elasticsearch.hosts: ["http://localhost:9201"]

5.选举流程

  1. Zen Discovery 进程:ES的每个节点都有一个Zen Discovery 组件,这个组件会启动一个Zen Discovery 进程,这个组件是集成在ES中的代码逻辑,它用于记录全局节点的信息,管理集群中节点的发现、加入、离开,以及主节点选举。也就是说每个ES节点上都存着一份全局节点的信息。

  2. 启动阶段: 当一个节点(Node)启动时,它会加入集群,并尝试与其他节点建立连接。这个节点会发送一个 "join" 请求,广播给当前集群中的所有节点。这个请求包含了节点的信息,比如节点的ID、地址和端口等。

  3. 选举过程:

    首先是master节点的候选资格:

    在 Elasticsearch 集群中,有一些节点被标记为 "master-eligible" 节点,这表示它们有资格成为主节点。这些节点在配置文件中的 node.master 属性为 true。

    接下来是选举过程:

    一旦有足够的主节点候选节点发现彼此并形成了一个集群,它们就会开始主节点选举的过程。这个过程需要多数(大多数)的主节点候选节点在线并参与选举,这也被称为“法定人数”(Quorum)。“法定人数”是为了避免脑裂(split-brain)情况,Elasticsearch要求一个法定人数的同意才能选举出一个新的主节点。在旧版本中(如7.x及以前),这是通过discovery.zen.minimum_master_nodes设置来配置的,它通常设置为(master-eligible nodes / 2) + 1。在更高版本中,这个设置已经被内置的选举机制替代,不需要手动配置。选举过程中采用节点之间相互投票的机制,选举出主节点来, 节点在决定给哪个节点投票时会考虑多个因素,包括节点的健康状况、网络稳定性、集群状态的完整性,以及节点的历史记录等。

  4. 故障检测: Zen Discovery 使用故障检测机制来确定节点是否可用。节点之间相互发送 Ping 和 Pong 消息以检测对方的状态。如果一个节点在一定时间内没有响应,它被认为是不可用的。一旦出现master节点不可用的状态,集群将会开启重新选举。需要进行重新选举的时候要是发现集群存货人数已经不及法定人数,那么集群将会对外拒绝服务。

  5. 持久化: 主节点的信息会被持久化存储,以便在节点重启后,集群能够快速地恢复到之前的状态。

6.请求流程

写请求处理流程(如索引或更新文档):

  1. 接收请求: 写请求可以发送到集群中的任何节点。该节点成为请求的协调节点。

  2. 确定主分片: 协调节点根据文档的ID和索引元数据来决定哪个主分片负责处理该文档。这通常是通过哈希文档ID来完成的。

  3. 转发请求: 协调节点将请求转发到托管该主分片的节点。

  4. 处理和复制: 主分片节点处理写请求(如索引或更新文档),然后将相同的操作复制到所有对应的副本分片。

  5. 确认和响应: 一旦主分片和所有必要的副本分片成功处理了请求,协调节点向客户端发送成功响应。

读请求处理流程(如搜索或获取文档):

  1. 接收请求: 读请求可以发送到集群中的任何节点。该节点成为请求的协调节点。

  2. 确定分片位置: 对于文档获取请求,协调节点会计算出哪个主分片或副本分片拥有该文档。对于搜索请求,协调节点确定要查询的所有相关分片。

  3. 查询分片: 协调节点并行地向那些托管相关分片的节点发送请求。读请求可以由主分片或任何副本分片来处理。

  4. 汇总结果: 对于搜索请求,协调节点从所有查询的分片收集结果,合并成一个全局的搜索结果。

  5. 响应客户端: 最终的结果被发送回给客户端。

7.master的作用

在Elasticsearch中,每个节点都维护着关于集群状态的本地副本,这包括了分片的分配和位置信息。这意味着协调节点通常能够独立地确定请求应该路由到哪个节点上,而不需要每次都查询主节点。那主节点的作用是什么喃?

主节点(Master Node)在Elasticsearch集群中扮演着关键的管理和协调角色。以下是主节点在集群中的主要职责和功能:

  1. 集群管理: 主节点负责整个集群的管理任务。这包括集群的创建、配置、状态监控以及集群范围内的一些操作。

  2. 节点协调: 主节点负责协调集群中的所有节点。它会与其他节点通信,确保集群中的每个节点都处于活动状态,同时负责监控节点的健康状况。

  3. 分片分配: 主节点负责决定每个分片(Shard)应该分配到集群中的哪个节点上。它会在节点加入或离开集群时重新分配分片,以保持集群的均衡和高可用性。

  4. 主节点选举: 如果当前的主节点出现故障或不可用,集群中的其他节点会通过选举机制选择一个新的主节点。主节点选举确保了即使主节点出现问题,集群也能够继续正常运行。

  5. 索引创建和删除: 主节点负责处理索引的创建和删除请求。当索引被创建时,主节点会决定每个分片应该在哪个节点上创建。

  6. 集群状态维护: 主节点维护着关于整个集群的状态信息,包括节点的健康状况、集群设置、索引元数据等。这些信息对于集群的正常运行非常重要。

  7. 路由请求: 主节点在协助客户端请求路由时发挥作用。虽然数据的实际读写操作是在数据节点上进行的,但主节点负责确定数据分布和分片的位置,从而协助请求的有效路由。

  8. 集群级别的操作: 主节点可以执行一些集群级别的操作,例如创建和删除索引、更新集群的设置、执行全局搜索等。

相关文章:

【elastic search】详解elastic search集群

目录 1.与集群有关的一些概念 2.集群搭建 3.集群搭建 4.kibana链接集群 5.选举流程 6.请求流程 7.master的作用 1.与集群有关的一些概念 数据分片: 数据分片(shard),单台服务器的存储容量是有限的,把一份数据…...

近红外光谱分析技术与基于深度学习的化学计量学方法

郁磊【副教授】:主要从事AI人工智能与大数据分析等相关研究,长期致力于人工智能与近红外生物医学工程等领域融合,主持并完成多项科研课题。著有《神经网络43个案例分析》等书籍。 // 讲座内容 1、近红外光谱基本理论、近红外光谱仪基本原理…...

Elasticsearch windows开箱即用【记录】

一、准备工作 安装ES之前要在本机安装好JDK,对应的兼容性见官网链接:https://www.elastic.co/cn/support/matrix ES官网链接:https://www.elastic.co/cn/, 我本机安装的是JDK8,测试使用的是7.3.0版本的ES和Kibana。 1、首先去…...

第 3 课 ROS 常用术语及命令说明

1.ROS文件系统的组成 ROS 文件是由 Packages 和 Manifests ( package.xml )组成。 Packages:功能包,是 ROS 软件中的基本单元,包含节点源码、配置文件、数据定义等。 Manifest( package xml &#x…...

基于AidLux的智慧教育版面分析应用

基于AidLux的智慧教育版面分析应用 1. Aidlux平台介绍 融合架构操作系统AidLux,可以为单一ARM设备同时提供Android和Linux运行环境,双系统既能独立使用又能相互通信。 非虚拟机方式实现双系统融合并行 同时拥有两个系统的完整用户体验无需重启即可在两个系统之间…...

Spring | Spring框架最基本核心的jar包、Spring的入门程序、依赖注入

目录: 1.Spring框架最基本、最核心的jar包2.Spring的入门程序3.依赖注入3.1 依赖注入的概念3.2 依赖注入的实现方式 1.Spring框架最基本、最核心的jar包 Spring是一个轻量级框架,Spring最基本、最核心的的jar包括 : beans、context、core、expression。 …...

[晓理紫]每日论文推送(有中文摘要,源码或项目地址)--大模型相关、扩散模型、视觉导航

专属领域论文订阅 VX关注{晓理紫|小李子},每日更新论文,如感兴趣,请转发给有需要的同学,谢谢支持 分类: 大语言模型LLM视觉模型VLM扩散模型视觉导航具身智能,机器人强化学习开放词汇,检测分割 LLM 标题:…...

【软件项目管理_软件工程】软件项目管理课后相关习题

(1)需求分析是回答系统必须(A)的问题。 A.做什么 B.怎么做 C.何时做 D.为谁做(2)WBS非常重要,下列哪项不是其很重要的原因(D)。 A.帮助组织工作 B.防止遗漏工作 C.为项目估算提供…...

Docker-Compose:教你入门到精通

引言 在当今的软件开发和运维领域,容器技术已经成为了一种非常重要的技术。而Docker-Compose作为Docker的重要工具之一,可以帮助我们轻松地管理和运行容器化的应用程序。本文将详细介绍Docker-Compose的入门到精通知识,帮助你更好地掌握这项技…...

软件设计不是CRUD(10):低耦合模块设计理论——业务抽象:从需求中提取业务维度

接上文《软件设计不是CRUD(9):低耦合模块设计理论——设计落地所面临的挑战》 2、什么是业务抽象 业务抽象是一种将需求落地成模块功能的设计思想,是对业务需求和技术设计进行转换、隔离的一种分析方法。经过业务抽象后的业务模块一般具有较高的业务屈服度,能更大程度满…...

S1-08 流和消息缓冲区

流缓冲区 流缓冲区一般用在不同设备或者不同进程间的通讯,为了提高数据处理效率和性能,设置的一定大小的缓冲区,流缓冲区可以用来存储程序中需要处理的数据、对象、报文等信息,使程序对可以对这些信息进行预处理、排序、过滤、拆…...

Java重修第五天—面向对象3

通过学习本篇文章可以掌握如下知识 1、多态; 2、抽象类; 3、接口。 之前已经学过了继承,static等基础知识,这篇文章我们就开始深入了解面向对象多态、抽象类和接口的学习。 多态 多态是在继承/实现情况下的一种现象&#xf…...

【征稿进行时|见刊、检索快速稳定】2024年经济发展与旅游管理国际学术会议(ICEDTM 2024)

【征稿进行时|见刊、检索快速稳定】2024年经济发展与旅游管理国际学术会议(ICEDTM 2024) 2024 International Conference Economic Development and Tourism Management(ICEDTM 2024) 一、【会议简介】 ICEDTM 2024将围绕"旅游管理”“经济发展”的最新研究领域&#xff…...

瑞_Java开发手册_(四)安全规约

🙊前言:本文章为瑞_系列专栏之《Java开发手册》的安全规约篇。由于博主是从阿里的《Java开发手册》学习到Java的编程规约,所以本系列专栏主要以这本书进行讲解和拓展,有需要的小伙伴可以点击链接下载。本文仅供大家交流、学习及研…...

Docker 安全必知:最佳实践、漏洞管理与监控策略

容器安全是实施和管理像 Docker 这样的容器技术的关键方面。它包括一组实践、工具和技术,旨在保护容器化应用程序及其运行的基础架构。在本节中,我们将讨论一些关键的容器安全考虑因素、最佳实践和建议。 容器隔离 隔离对于确保容器化环境的强大性和安全…...

【Flutter】多线程

Flutter 作为一个跨平台的UI库,前面的Flutter 架构有涉及到,Flutter 架构中的运行的多个线程。那么最为一个Flutter开发者,我们如何创建线程呢 多线程 上述我们提及到了,架构层涉及的多线程问题。比如说 主线程, 平台线程&#x…...

STM32-实时时钟RTC-1

...

node(express.js创建项目)+连接mysql数据库

1.node npm的安装 2.express的安装 全局安装:npm install express -gnpm install -g express-generator// ps: 4.0版本把generator分离出来了,需要单独安装3.创建express项目 express 项目名称 cd 项目名称 npm install npm start4.项目中安装数据库 npm install…...

【FLV】记录 H.264的解析

参考 FLV 文件格式分析 知乎大神的FLV文件格式分析。 FLV 首先下发9个字节的FLV 头 -2024-01-08 11:38:29.698 INFO [32196] [evplayer_client_main@153] player clinet run … 2024-01-08 11:38:29.702 INFO [2276] [evplayer_client_main::<lambda_1>::operator ()@14…...

nodejs+vue+ElementUi音乐分享社交网站77l8j

本文介绍的系统主要分为两个部分&#xff1a;一是前台界面&#xff1a;用户通过注册登录可以实现音乐播放、新闻浏览、留言评论等功能&#xff1b;另一个是后台界面&#xff1a;音乐网站管理员对用户信息进行管理&#xff0c;上传更新音乐资源&#xff0c;发布最新音乐资讯等功…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求&#xff0c;设计一个邮件发奖的小系统&#xff0c; 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其…...

云计算——弹性云计算器(ECS)

弹性云服务器&#xff1a;ECS 概述 云计算重构了ICT系统&#xff0c;云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台&#xff0c;包含如下主要概念。 ECS&#xff08;Elastic Cloud Server&#xff09;&#xff1a;即弹性云服务器&#xff0c;是云计算…...

在rocky linux 9.5上在线安装 docker

前面是指南&#xff0c;后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

Bean 作用域有哪些?如何答出技术深度?

导语&#xff1a; Spring 面试绕不开 Bean 的作用域问题&#xff0c;这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开&#xff0c;结合典型面试题及实战场景&#xff0c;帮你厘清重点&#xff0c;打破模板式回答&#xff0c…...

嵌入式常见 CPU 架构

架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集&#xff0c;单周期执行&#xff1b;低功耗、CIP 独立外设&#xff1b;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel&#xff08;原始…...

Oracle11g安装包

Oracle 11g安装包 适用于windows系统&#xff0c;64位 下载路径 oracle 11g 安装包...

macOS 终端智能代理检测

&#x1f9e0; 终端智能代理检测&#xff1a;自动判断是否需要设置代理访问 GitHub 在开发中&#xff0c;使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新&#xff0c;例如&#xff1a; fatal: unable to access https://github.com/ohmyzsh/oh…...