1. 节点类型

不同角色的节点

  • Master eligible / Data / Ingest / Coordinating / Machine Learning

在开发环境中,一个节点可承担多种角色

在生产环境中

  • 根据数据量,写入和查询的吞吐量,选择适合的部署方式
  • 建议设置单一角色的节点(dedicated node)

2. 节点参数配置

一个节点在默认情况下会同时扮演: master eligibledata nodeingest node

节点类型配置参数默认值
master eligiblenode.mastertrue
datanode.datatrue
ingestnode.ingesttrue
coodrinating only设置上面三个参数全部为 false
machine learningnode.mltrue (需要 enable x-pack)

3. 单一职责的节点

一个节点只承担一个角色
在这里插入图片描述

4. 单一角色:职责分离的好处

Dedicated master eligible nodes:负责集群状态(cluster state)的管理

  • 使用低配置的 CPU ,RAM 和磁盘

Dedicated data nodes: 负责数据存储及处理客户端请求

  • 使用高配置的 CPU,RAM 和磁盘

Dedicated ingest nodes: 负责数据处理

  • 使用高配置的 CPU ; 中等配置的 RAM; 低配置的磁盘

5. Dedicate Coordinating Only Node (Client Node)

配置:将 Master ,Data ,Ingest 都配置成 Flase

  • Medium / High CUP; Medium / High RAM;Low Disk

生产环境中,建议为一些大的集群配置 Coordinating Only Nodes

  • 扮演 Load Balancers。 降低 Master 和 Data Nodes 的负载
  • 负载搜索结果的 Gather / Reduce
  • 有时候无法预知客户端会发生怎样的请求
    大量占用内存的结合操作,一个深度聚合可能引发 OOM

6. Dedicate Master Node

从高可用 & 避免脑裂的角色出发

  • 一般在生产环境中配置 3 台
  • 一个集群只有 1 台活跃的主节点
  • 负载分片管理,索引创建,集群管理等操作

如果和数据节点或者 Coordinate 节点混合部署

  • 数据节点相对有比较大的内存占用
  • Coordinate 节点有时候可能会有开销很高的查询,导致 OOM
  • 这些都有可能影响 Master 节点,导致集群的不稳定

7. 基本部署:增减节点,水平扩展

当磁盘容量无法满足需求时,可以增加数据节点;磁盘读写压力大时,增加数据节点
在这里插入图片描述

8. 水平扩展:Coordinating Only Node

当系统中有大量的复杂查询及聚合时候,增加 Coordinating 节点,增加查询的性能
在这里插入图片描述

9. 读写分离

在这里插入图片描述

10. 在集群里部署 Kibana

在这里插入图片描述

11. 异地多活的部署

集群处在三个数据中心;数据三写;GTM 分发读请求
在这里插入图片描述

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐