当前位置:首页 > 服务端 > es中的Gateway模块

es中的Gateway模块

2022年11月09日 23:17:52服务端8

1、简介

负责集群元信息的存储和集群重启时的恢复

2、元数据

元数据信息包含以下几种

  • 集群元数据
  • 索引层面元数据
  • 分片层面元数据

分别对应es中的数据结构

2.1 Metadata

其对应的文件名在datapaths/_state/目录下,对应文件名为global-{generation}.st

包含的信息有

名称 说明
version 当前版本号,每次更新加1
clusterUUID 集群的唯一id
clusterUUIDCommitted
coordinationMetadata
persistentSettings 持久化的集群设置
indices 所有Index的Meta
hashesOfConsistentSettings
templates 所有模版的Meta
customs 自定义配置

2.2 IndexMetadata

索引层元数据,其对应的文件名在datapaths/_state/目录下,对应文件名为state-{generation}.st

包含的信息有

名称 说明
settings numbersOfShards,numbersOfRepilicas等配置
mappings Index的mapping
aliases 别名 
in_sync_allocations 处于InSync状态的AllocationId
rollover_info
primary_terms primaryTerm在每次Shard切换Primary时加1,用于保序
timestamp_range
state Index的状态, 是个enum,值是OPEN或CLOSE
version 当前版本号,每次更新加1
mapping_version
settings_version
aliases_version
routing_num_shards 用于routing的shard数, 只能是该Index的numberOfShards的倍数,用于split
system

 2.3 ShardStateMetadata

包含的信息有

名称 说明
primary 是否是主分片
index_uuid 索引的uuid
allocation_id 分配id

 3、元数据的持久化

在处理发布请求时,CoordinationState#handlePublishRequest会调用PersistedState#setLastAcceptedState,通过调用GatewayMetaState的内部类LucenePersistedState#setLastAcceptedState,最终是PersistedClusterStateService.Writer来更新数据。

4、元数据的恢复 

4.1 影响恢复的参数

参数 说明
gateway.expected_data_nodes 预期的节点数。加入集群的节点数达到这个数量后立即开始gateway的恢复,默认为-1
gateway.recover_after_time 如果没有达到预期的节点数,则恢复过程将等待配置的时间,再尝试恢复。默认是0
gateway.recover_after_data_nodes 只要配置数量的节点加入集群就可以开始恢复

4.2 恢复方式

当发现节点是Coordinator时,直接使用分片层元数据恢复。

发现节点不是Coordinator时,gateway模块负责集群层和索引层的元数据恢复,分片层的元数据恢复由allocation模块实现,但是由gateway模块在执行完上述两个层次恢复工作后触发。

参考资料:

https://www.cnblogs.com/szss/p/10151902.html

作者:kgduu
来源链接:https://blog.csdn.net/wuli2496/article/details/124069979

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/69071.html

标签: Gateway
分享给朋友:

“es中的Gateway模块” 的相关文章

gRPC+gRPC Gateway+swagger小记

gRPC+gRPC Gateway+swagger小记

gRPC+gRPC Gateway+swagger小记 前言 本文记录了grpc-gateway的简单使用。 定义proto 先来看看最常规的 syntax = "proto3"; package protos; service Greet...

spring-cloud-starter-gateway

  ********************************************************** Spring MVC found on classpath, which is incompatible with Spring Cloud...

SpringCloud-Gateway 网关路由、断言、过滤

SpringCloud-Gateway 网关路由、断言、过滤

Gateway 简介 是什么? Spring Cloud 全家桶中有个很重要的组件:网关。在 1.x 版本中使用的是 Zuul 网关,但是到了 2.x,由于Zuul的升级不断跳票,Spring Cloud 自己研发了一套网关组件:Spring Cloud Gateway。...

SpringBoot 整合 gateway

SpringBoot 整合 gateway

1.添加依赖 1.1 在springboot项目中注意 pom文件配置<parent>节点,否则nacos依赖会出问题 <parent> <groupId>org.springframework.boot</groupId&...

springcloud组件gateway断言(Predicate)

springcloud组件gateway断言(Predicate)

Spring Cloud Gateway是SpringCloud的全新子项目,该项目基于Spring5.x、SpringBoot2.x技术版本进行编写,意在提供简单方便、可扩展的统一API路由管理方式。 概念解释: Route(路由):路由是网关的基本...

SpringCloud + Consul服务注册中心 + gateway网关

  1  启动Consul 2  创建springcloud-consul项目及三个子模块        2.1 数据模块consul-producer      ...

跟我学SpringCloud | 第十二篇:Spring Cloud Gateway初探

跟我学SpringCloud | 第十二篇:Spring Cloud Gateway初探

SpringCloud系列教程 | 第十二篇:Spring Cloud Gateway初探 Springboot: 2.1.6.RELEASE SpringCloud: Greenwich.SR1 如无特殊说明,本系列教程...

SpringCloud Gateway跨域配置

Springboot版本:2.1.8.RELEASE SpringCloud版本:Greenwich.SR2 yml配置: spring: cloud: gateway: globalcors: cors-config...

GateWay路由网关的概述与入门详解

GateWay路由网关的概述与入门详解

一、概述简介 官网:https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1.RELEASE/reference/html/ 1.是什么? Cloud全家桶中...

九、Spring Cloud 微服务之 Gateway

九、Spring Cloud 微服务之 Gateway

文章目录 Gateway 新一代网关 1. 概述简介 1.1 是什么? 1.2 能干嘛 1.3 微服务架构...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。