2024年最新【ES专题】ElasticSearch集群架构剖析_es集群,系列篇

本文详细介绍了Elasticsearch(ES)的集群架构,包括为何使用集群、核心概念如节点、分片,以及主节点、数据节点和协调节点的角色。主节点负责索引创建、删除和集群状态管理,数据节点存储和索引数据,协调节点负责请求分发和结果汇总。文中还探讨了生产环境中的最佳实践,如节点角色分离、水平扩展、异地多活和Hot & Warm架构,以提高可用性和降低成本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

要点

ES要掌握什么:

  1. 使用:搜索和聚合操作语法,理解分词,倒排索引,相关性算分(文档匹配度)
  2. 优化: 数据预处理,文档建模,集群架构优化,读写性能优化

笔记正文

一、ES集群架构

1.1 为什么要使用ES集群架构

为什么需要使用集群架构?这就得提一下分布式系统的可用性与扩展性了。

  • 高可用性:分为两个点考虑
    • 服务高可用性:允许个别节点停止服务,个别节点停止服务不影响整体使用
    • 数据可用性:部分节点丢失,不会丢失数据(需要有备份策略)
  • 可扩展性:
    • 请求量提升/数据的不断增长(将数据分布到所有节点上)

上面所说的正是集群架构的优势所在。对ES集群架构来说,则体现在:

  • 提高系统的可用性,部分节点停止服务,整个集群的服务不受影响
  • 存储的水平扩容

在这里插入图片描述

1.2 ES集群核心概念

ES集群中有2个比较核心的概念需要理解一下。分别是:节点、分片。在聊这些概念之前,我们先重新梳理一下,ES的集群是什么。
ES的集群,亦上图所示,它通常由如下特征:

  • 集群中有一个或者多个节点
  • 不同的集群通过不同的名字来区分,默认名字【elasticsearch】

注意:ES在实际生产环境中,还会部署多个集群一起工作

  • 通过配置文件修改,或者在命令行中 -E cluster.name=es-cluster进行设定
1.2.1 节点

ES中的节点本质上是一个Elasticsearch的实例,一个Java进程。通常,我们建议生产环境中,一台机器只运行一个ES实例。(一台机器部署多个节点,其实是违背【高可用】原则的)
ES节点有如下特性:

  • 每一个节点都有名字,通过配置文件配置,或者启动时候 -E node.name=node1指定
  • 每一个节点在启动之后,会分配一个UID,保存在data目录下
  • 节点有多种角色(类型),不同角色通常有不同的功能,它们分别是:
    • Master Node:主节点,负责索引的删除创建
    • Master eligible nodes:【直译:符合条件的节点】。可以参与选举的合格节点
    • Data Node:数据节点,负责文档的写入、读取。节点保存数据并执行与数据相关的操作,如CRUD、搜索和聚合
    • Coordinating Node:协调节点
    • 其他节点

通过ES多角色定义可以看的出来,ES的集群架构非常成熟,它也是我目前见过的角色最丰富的架构。如此丰富的角色定义,肯定是为了拓展集群架构而生的,单一职责嘛。不过有一点我没想通的是,如果节点太多了,做一次CRUD的速度能快吗?会不会在通信上就花费了很多时间。

节点类型,可以通过如下配置参数禁用/启用
在这里插入图片描述

关于Master eligible nodes和Master Node

  • 每个节点启动后,默认就是一个Master eligible节点,即都可以参与集群选举,成为Master节点。可以通过node.mater=false禁止
  • 当第一个节点启动时候,它会将自己选举成Master节点
  • 每个节点上都保存了集群的状态,但是只有Master节点才能修改集群的状态信息。集群状态信息(Cluster State) 维护了一个集群中所有必要的信息。比如:
    • 所有节点信息
    • 所有的索引和其他相关的Mapping与Setting信息
    • 分片的路由信息

关于Data Node 和 Coordinating Node

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值