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

es中的Gateway模块

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
分享给朋友: