ES的高可用

news/2024/10/19 2:19:49/

es最小高可用集群组成

  • At least three master-eligible nodes(至少三个符合主节点条件的节点)
  • At least two nodes of each role(每个角色至少有两个节点
  • At least two copies of each shard (one primary and one or more replicas) 每个分片至少有两个副本(一个主副本和一个或多个副本))

为什么需要3master节点?

因为当一个master节点挂掉之后,剩余的两个仍符合选举的“多数”从而完成选举

为什么每个角色至少需要2个节点?

因为一个该角色的节点挂掉之后,另一个可以替代

为什么每个分片至少需要两个副本?

因为主分片(primary shard) 和副本分片(replica shard) 不能分布在同一个节点,这样即使当一个节点失败导致分片数据丢失,还可以从另一个节点上的分片来恢复数据。保证数据安全。

不同节点数的集群,需要不同的不同配置以及健壮性对比:

集群节点数

备注

角色分配

配置要求

健壮性

client连接串配置要求

1个同配置节点

生产不推荐

该节点分配所有角色

  • index.number_of_replicas设置为0,这样集群才能green。

不能容忍节点失败,一旦失败只能从快照(snapshot)进行恢复。所以建议定时进行snapshot

2个同配置节点

生产不推荐

2个节点都分配为除候选主节点外的其他角色。

  • index.number_of_replicas 只能设置为≤1,否则集群无法变成green;
  • 将其中的一个节点(node A)设置为候选master节点,另一个节点(node B)配置:node.master: false。这样node B挂了,也不影响集群的master选举。

只能容忍配置了node.master: false的节点挂掉,只不过这时集群为yellow,手动将index.number_of_replicas 设置为0,就变成单节点的es集群了,也能变成green

不要只配置其中的1个节点,而应该使用类似负载均衡将请求分发到两个节点上。

2高配置节点+1个低配置节点

资源紧张时可以这么用

1)2个高配置的节点:分配data,master等主要角色,不能配置voting_only角色;

2)1个低配置节点:分配voting_only角色(只用于选主时进行投票,不接受业务请求)

可以容忍配置了node.roles: master的任何一个节点的失败。

将客户端请求负载到2个高配置的节点(分配了node.role:master)

3个同配置节点

生产推荐

所有节点都分配所有角色

  • 挂掉任何一个节点,集群不影响;
  • 挂掉2个节点,集群变yellow,如果将index.number_of_replicas 设置为0,集群变green

将客户端请求负载到3个节点

多余3个节点

生产推荐(适应用大业务量的场景)

1)建议节点专用,每个节点使用专用的角色。当然提高资源利用率,也可以考虑将节点分配几个角色(考虑负载即可)

2)候选主节点限制为3个能满足绝大多数的要求。因为太多主节点会有导致投票时间过长。


http://www.ppmy.cn/news/1470430.html

相关文章

融资A轮B轮是什么意思?

环境: 融资 问题描述: 融资A轮B轮是什么意思 解决方案: 在A轮融资之前,通常有以下几轮融资阶段: 种子轮(Seed Round):这是企业生命周期中最早的融资阶段,通常发生在…

Linux系统ubuntu20.04 无人机PX4 开发环境搭建(失败率很低)

Linux系统ubuntu20.04 无人机PX4 开发环境搭建 PX4固件下载开发环境搭建MAVROS安装安装地面站QGC PX4固件下载 PX4的源码处于GitHub,因为众所周知的原因git clone经常失败,此处从Gitee获取PX4源码和依赖模块。 git clone https://gitee.com/voima/PX4-…

java的构造方法——无参构造方法

java在实例化一个对象后,如果需要为这个对象的属性赋值,就必须直接访问对象属性或者调用setter的方法。 如果要在实例化对象时为这个对象的属性赋值,可以通过构造方法实现。 构造方法是一个特殊的成员方法,定义时需要注意以下几…

Day1:基础语法

今日目标:理解什么是变量、掌握常用的数据类型、学会数据类型转换 一、JavaScript 介绍 1. JavaScript 基础知识 主要讲解 :JavaScript 是什么、书写位置、注释、结束符、输入和输出语法、字面量。 1.1 JavaScript 是什么 是一种运行在客户端(浏览器…

响应式网页开发方法与实践

随着移动设备的普及和多样化,响应式网页开发已成为现代网页设计的主流趋势。响应式网页(Responsive Web Design, RWD)是一种网页设计技术,其核心思想是通过灵活的布局和媒体查询,使网页能够适应不同设备和屏幕尺寸&…

QT利用QGraphicsDropShadowEffect效果及自定义按钮来实现一个炫酷键盘

1、效果 2、核心代码 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent<

【ARMv8/v9 GIC 系列 3 -- GIC 的 类型寄存器 GICD_TYPER】

文章目录 GIC 类型寄存器 GICD_TYPERESPI_Range, 位[31:27]RSS, 位[26]No1N, 位[25]A3V, 位[24]IDBits, 位[23:19]DVIS, 位[18]LPIs, 位[17]MBIS, 位[16]NUM_LPIs, 位[15:11]SecurityExtn, 位[10]NMI, 位[9]ESPI, 位[8]CPUNumber, 位[7:5]ITLinesNumber, 位[4:0]GIC 类型寄存器…

电子书(chm)-加载JS--CS上线

免责声明: 本文仅做技术交流与学习... 目录 cs--web投递 html(js)代码 html生成chm工具--EasyCHM 1-选择powershell 模式 生成 2-选择bitsadmin模式生成 chm反编译成html cs--web投递 cs配置监听器--->攻击---->web投递---> 端口选择没占用的, URL路径到时候会在…