es中的Gateway模块

本文详细介绍了Elasticsearch中集群元数据的管理,包括元数据的存储、不同层次(集群、索引、分片)的详细信息,以及元数据的持久化过程。在集群重启时,元数据恢复机制确保数据一致性,涉及参数如gateway.expected_data_nodes和gateway.recover_after_time等。恢复过程分为协调节点和非协调节点的不同处理方式。
摘要由CSDN通过智能技术生成

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

包含的信息有

名称说明
settingsnumbersOfShards,numbersOfRepilicas等配置
mappingsIndex的mapping
aliases别名 
in_sync_allocations处于InSync状态的AllocationId
rollover_info
primary_termsprimaryTerm在每次Shard切换Primary时加1,用于保序
timestamp_range
stateIndex的状态, 是个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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kgduu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值