李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
Java
正文
Elasticsearch集群故障转移
Leefs
2021-02-10 PM
2388℃
0条
# 03.Elasticsearch集群故障转移 ### 一、概念 **1.1 概述** 当Elasticsearch的某个节点出现故障时,集群会进行一系列的操作,用来 保证整个集群的稳定性和数据不被丢失。 当集群中只有一个节点在运行时,意味着会有一个单点故障问题——没有冗余。 幸运的是,我们只需再启动一个节点(进行数据备份)即可防止数据丢失。 **1.2 启动多个节点** 启动第二个节点后,集群状态如图: ![14.Elasticsearch集群故障转移01.png](https://lilinchao.com/usr/uploads/2021/02/3520338218.png) 第二个节点已经加入集群,三个**复制分片(replica shards)**也已经被分配了——分别对应三个主分片,这意味着在丢失任意一个节点的情况下依旧可以保证数据的完整性。 文档的索引将首先被存储在主分片中,然后并发复制到对应的复制节点上。这可以确保我们的数据在主节点和复制节点上都可以被检索。 ### 二、集群健康状态 Elasticsearch提供API可以查询集群的健康状况: ```json GET _cluster/health ``` 输出参数: ```json { "cluster_name": "elasticsearch", "status": "green", "timed_out": false, "number_of_nodes": 2, "number_of_data_nodes": 2, "active_primary_shards": 3, "active_shards": 6, "relocating_shards": 0, "initializing_shards": 0, "unassigned_shards": 0 } ``` 通过`status`参数的返回值来查看集群的状态 | 状态值 | 说明 | | ------ | -------------------------------------- | | green | 健康状态,指所有的主副分片都可用 | | yellow | 指所有主分片都正常,但是有副分片不可用 | | red | 有主分片不可用 | ### 四、故障转移过程 集群由3个节点组成,如下所示,此时集群的状态是green ![14.Elasticsearch集群故障转移02.png](https://lilinchao.com/usr/uploads/2021/02/4263039620.png) 如果此时,node1所在的机器宕机导致服务终止,此时集群会如何处理呢? 1. node2和node3发现node1无法响应一段时间后会发起mater选举,比如这里选择node2为master节点,此时由于主分片P0下线,集群的状态会变成red ![14.Elasticsearch集群故障转移03.png](https://lilinchao.com/usr/uploads/2021/02/1247863967.png) 2. node2发现主分片P0未分配,将R0提升为主分片。此时由于所有主分片都正常分配,集群状态变为Yellow。 ![14.Elasticsearch集群故障转移04.png](https://lilinchao.com/usr/uploads/2021/02/2745139351.png) 3. node2位P0和P1生成新的副本,此时集群的状态变为绿色 ![14.Elasticsearch集群故障转移05.png](https://lilinchao.com/usr/uploads/2021/02/3033685820.png) ### 五、脑裂问题 ![14.Elasticsearch集群故障转移06.png](https://lilinchao.com/usr/uploads/2021/02/1714175080.png) *附:* [参考文章链接](https://bingxiong.vip/?p=16816#part5)
标签:
Elasticsearch
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://lilinchao.com/archives/1068.html
上一篇
Elasticsearch集群搭建
下一篇
Elastic Stack简介
评论已关闭
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
NLP
4
标签云
VUE
nginx
MyBatisX
持有对象
Sentinel
Spark SQL
Python
国产数据库改造
容器深入研究
Golang
查找
RSA加解密
并发线程
LeetCode刷题
Netty
并发编程
Elasticsearch
Spark RDD
JavaWeb
gorm
NIO
Shiro
Java编程思想
Spark Streaming
Spark Core
ajax
Java
JavaScript
Azkaban
队列
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞
评论已关闭