ElasticSearch之集群中的节点

对官方文档Node的阅读笔记。

ES集群由一个或者多个ES节点组成。

ES集群中的节点,支持处理两类通信平面,见文档

  • 集群内节点之间的通信,官方文档称之为transport layer。
  • 集群外的通信,处理客户端下发的请求,比如数据的CRUD,检索等,官方文档称之为HTTP layer。

通过集群内节点的通信,节点可以获取到集群内所有节点的信息,比如通信地址、健康状态、承载的索引和shard等信息。

当集群中某节点处理客户端下发的请求时,可以将业务请求转发至数据相关的节点,处理业务请求。

接收到客户端下发的请求的节点,依据官方文档,可以称之为接入节点或者the coordinating node。默认情况下,集群中所有的节点都可以接入客户端的业务,因此都具备接入节点的角色。

作为接入节点,处理业务请求的过程可以划分为如下阶段:

  • 转发阶段即scatter phase
    • 接入节点分析业务请求,获取索引和shard的归属节点。
    • 接入节点将请求转发至归属节点。
    • 归属节点处理请求,将处理结果返回至接入节点。
  • 收集阶段即gather phase
    • 接入节点处理各归属节点返回的数据。
    • 接入节点将数据组装为最终的结果。
    • 接入节点将结果返回客户端。

因此,作为接入节点,需要具备足够的硬件资源,比如CPU、内存等,否则无法正常处理各归属节点返回的数据。

ES节点,简单而言,可以理解为ES进程,比如一台主机上运行一个ES进程,或者在一台物理主机上,运行多个ES进程。对于前述ES进程,均可以理解为不同的ES节点。

在ES集群中,存在多种角色或者职责,因此从分工或者职责唯一的角度,可以为节点指定其角色,限定其职责,专业化分工,提升集群的可用性。

ES集群中,通常包含如下角色:

  • master
  • data
  • data_content
  • data_hot
  • data_warm
  • data_cold
  • data_frozen
  • ingest
  • ml
  • remote_cluster_client
  • transform

在ES的配置文件elasticsearch.yml中增加配置项node.roles,可以指定该节点的角色。配置样例,如下:

yaml 复制代码
node.roles: [ master ]

对于专职的接入节点,可以做如下配置:

yaml 复制代码
node.roles: [ ]

数据的生命周期、访问频率、重要性、访问数据时的时延、存储成本等存在差异,比如

  • 从生命周期角度讲
    • 有些数据需要长期保留。
    • 有些数据可能使用完毕后即可删除。
  • 从访问频率角度讲
    • 有些数据会被经常访问。
    • 有些数据可能经历一段时间的高频访问之后,访问频率逐步下降。
    • 有些数据可能初期的访问频率不高,但在某些场景下,访问频率可能会突然上升,然后再次下降。
    • 有些数据可能保持低频访问。
    • 有些数据可能基本没有访问,比如归档数据、备份数据。
  • 从重要性角度讲
    • 有些数据是关键数据,需要长期保留,不允许丢失,假如丢失,则需要具备恢复手段。
    • 有些数据虽然重要,但丢失之后重新获取的成本比较低。
    • 有些数据则可有可无,丢失也不影响最终结果。
  • 从访问时延角度讲
    • 应用场景为高带宽、高时延,比如大数据业务。
    • 应用场景为低时延、高OPS,比如检索业务。
  • 从存储成本角度讲,按照存储介质来划分
    • 磁带,访问时延大、存储成本低,适用于数据量大,长期归档,访问频率极低的数据。
    • HDD盘,访问时延相对低一些,存储成本相对高一些,存储容量小,适用于归档、备份,访问频率一般的数据。
    • SSD盘,访问时延低,支持的OPS高,存储成本更高,存储容量低,适用于数据量相对不大,但访问频率相对要高一些的数据。
    • 内存,访问时延极低,成本更高,存储容量更低,适用于数据量很小,但访问频率极高的数据。

基于数据的差异,ES提供了如下角色的选项:

  • data_content,适用于高频检索的数据,ES针对这个角色,提供了必要的优化。
  • data_hot,适用于热数据,可以配置比较好的硬件、支撑高速访问的存储介质,保存访问频率高的数据。
  • data_warm,适用于温数据,硬件、介质可以选择成本低一点,保存访问频率相对没有那么高的数据。
  • data_cold,适用于冷数据,硬件、介质可以选择相对更低一点,保存访问频率比较低的数据。
  • data_frozen,适用于极冷数据,选择容量大,成本低的硬件和介质,保存访问频率非常低的数据。

假如很难从业务场景区分数据的差异,则可以直接使用角色data

参考资料

相关推荐
元气满满的热码式1 小时前
logstash中的input插件(http插件,graphite插件)
网络·网络协议·http·elasticsearch·云原生
silianpan2 小时前
文档检索服务平台
elasticsearch·搜索引擎·开源
(; ̄ェ ̄)。2 小时前
在nodejs中使用ElasticSearch(二)核心概念,应用
大数据·elasticsearch·搜索引擎
boy快快长大3 小时前
【Elasticsearch】同一台服务器部署集群
服务器·elasticsearch·jenkins
一个儒雅随和的男子3 小时前
Elasticsearch除了用作查找以外,还能可以做什么?
大数据·elasticsearch·搜索引擎
跳跳的向阳花5 小时前
06、ElasticStack系列,第六章:elasticsearch设置密码
大数据·elasticsearch·jenkins
Elastic 中国社区官方博客14 小时前
Elasticsearch Open Inference API 增加了对 Jina AI 嵌入和 Rerank 模型的支持
大数据·人工智能·elasticsearch·搜索引擎·ai·全文检索·jina
隔壁老王15614 小时前
mysql实时同步到es
数据库·mysql·elasticsearch
SunnyRivers16 小时前
关于ES中text类型时间字段范围查询的结构化解决方案
elasticsearch·时间·text·范围查询
API_technology16 小时前
电商搜索API的Elasticsearch优化策略
大数据·elasticsearch·搜索引擎