0
点赞
收藏
分享

微信扫一扫

Elasticsearch实战-ES集群-分布式新增查询、故障转移

人间四月天i 2022-05-05 阅读 30

三个节点
9200(master)
9201
9202
参考:Elasticsearch实战-ES集群-搭建

一、实战

1、新增

用kibana连接到主节点9200

POST /itcast/_doc/1
{
	"title": "设置插入一条id = 1"
}

用工具
在这里插入图片描述
分别插入id=1,3,5三条数据

2、 查询

GET /itcast/_search
{
	"query": {
		"match_all": {}
	}
}

在这里插入图片描述

3、从节点查询

从9201/9202查询,发现也是3条数据
在这里插入图片描述

4、分析存储情况

增加explain命令,发现数据存储在不同的分片,说明协调节点发挥了作用
在这里插入图片描述

二、分布式存储

1、分片算法

在这里插入图片描述

2、新增文档流程

P是分片,R是备份
在这里插入图片描述

三、分布式查询

请求会发送到所有节点
在这里插入图片描述

四、分布式总结

分布式新增如何确定分片

  • coordinating node 根据id做hash运算,得到结果对shard数量取余,余数就是对应的分片

分布式查询

  • 分散阶段:coordinating node将查询请求分发到不同的分片
  • 收集阶段:将查询结果汇总到coordinating node,整理并返回给用户

五、故障转移

集群的master节点会监控集群中节点状态,如果发现有节点宕机,会立即将宕机节点的分片数据迁移到其他节点,确保数据安全,这个叫做故障转移。

  • master宕机后,EligibleMaster选举为新的主节点
  • master节点监控分片、节点状态,将故障节点上的分片转移到正常节点,确保数据安全
    在这里插入图片描述

实战

原本状态
在这里插入图片描述

  1. 停掉01
docker-compose stop es01
  1. 此时cerebro查看状态
    在这里插入图片描述

  2. 稍等迁移之后
    在这里插入图片描述

  3. 重启es01

docker-compose start es01
  1. 查看状态
    在这里插入图片描述

举报

相关推荐

0 条评论