ElasticSearch | 常见的集群部署方式

节点类型

不同角色的节点
  • Master Eligible Node;
  • Data Node;
  • Ingest Node;
  • Coordinating Node;
  • Machine Learning Node;

在开发环境,一个节点可以承担多种角色;生产环境中,需要根据数据量,写入和查询的吞吐量,选择合适的部署方式,建议设置单一角色的节点(dedicated node);

节点参数配置

一个节点在默认情况下会同时扮演:Master Node,Data Node 和 Ingest Node。

节点类型配置参数默认值
Master Eligiblenode.mastertrue
Datanode.datatrue
Ingestnode.ingesttrue
Coordinating only设置上面 3 个参数全为 false
machine learningnode.mltrue(需要 enable x-pack)

不同职责 Dedicated Node 的配置选择

Dedicated Master Eligible Node
  • 负责集群状态的管理;
  • 使用低配置的 CPU,RAM 和磁盘;
Dedicated Data Node
  • 负责数据存储及处理客户端请求;
  • 使用高配置的 CPU,RAM 和磁盘;
Dedicated Ingest Node
  • 负责数据处理;
  • 使用高配置的 CPU,中等配置的 RAM,低配置的磁盘;
Dedicated Coordinating only Node
  • 高配或中配的 CPU,高配或中配的 RAM,低配的磁盘;
  • 生产环境中,建议为一些大的集群配置 Coordinating Only Node,其扮演的角色:
    • Load Balancer,降低 Master 和 Data Nodes 的负载;
    • 负责搜索结果的 Gather 和 Reduce;
    • 有时无法预知客户端会发送怎样的请求,大量占用内存的聚合操作,比如一个深度聚合可能会发生 OOM;

为什么要配置 Dedicated Master Node

从高可用 & 避免脑裂的角度触发
  • 一般在生产环境中配置 3 台,当有1 台丢失的时候,其余的节点会被提升成活跃主节点;
  • 一个集群只有一台活跃的主节点,负责分片管理,索引创建,集群管理等操作;

如果和 Data Node 或 Coordinating Node 混合部署

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

基本部署 | 水平扩展

Data Node 水平扩展
  • 当磁盘容量无法满足时,可以增加 Data Node;
  • 当磁盘读写压力大时,可以增加 Data Node;
Coordinating Node 水平扩展
  • 当系统中有大量复杂查询及聚合的时候,增加 Coordinating Node,提升查询和聚合的性能;
  • 可以在 Coordinating Node 前配置 LB,软件或硬件实现,此时 Application 只需要和 LB 交互;
读写分离
  • 读请求发到 Coordinating Node;
  • 写请求发到 Ingest Node;
  • Coordinating Node 和 Ingest Node 前都可以配置 LB;

在集群中配置 Kibana

建议将 Kibana 部署在 Coordinating 上。

异地多活的部署

集群处在 3 个数据中心,数据 3 写,GTM 分发读请求。


异地多活部署.png
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值