当前位置: 首页 > java >正文

Elasticsearch 索引文档的流程

        Elasticsearch 索引文档的流程是一个分布式、多阶段的过程,涉及客户端请求、路由、主副本同步及持久化等步骤,具体流程如下:

一、客户端请求与路由
 1.1 文档接收与路由计算‌
        客户端通过 REST API 发送文档写入请求,需指定索引名、文档 ID(可选)及文档内容。
Elasticsearch 根据文档 ID(或自定义 routing 值)哈希计算目标主分片位置。请求被转发到主分片所在的节点(协调节点或直接定位主节点)。
二、主分片写入与副本同步
2.1 主分片处理写入‌
        主分片节点接收到请求后:写入内存缓冲区‌:数据暂存至节点级内存缓冲区(Indexing Buffer)。
‌        记录事务日志‌:同时将操作写入分片级事务日志(Translog),确保宕机后可恢复。
2‌.2 副本分片同步‌
        主分片并行将写入请求转发至所有副本分片所在节点。
        副本分片执行相同操作(写入缓冲区 + 记录 Translog),并向主分片返回执行结果。
        所有副本分片确认成功后,主分片向客户端返回写入成功响应。
三、数据刷新与持久化
3‌.1 刷新(Refresh)生成可搜索段‌
        默认每秒触发一次刷新(可配置 refresh_interval):
        将内存缓冲区中的数据写入 Lucene 段文件(Segment)。
        新段文件打开后,文档立即可被搜索(近实时搜索)。
‌3.2 事务日志刷盘(Flush)‌
        周期性(默认 30 分钟)或 Translog 达到阈值时:
        执行 Lucene Commit,将内存中所有数据持久化到磁盘。
        清空 Translog 并创建新日志文件,释放磁盘空间。
四、段合并优化
‌        后台段合并(Merge)‌
        Lucene 自动合并多个小段文件为大段,提升查询性能。
        删除已标记删除的文档,回收磁盘空间。

阶段关键操作目标
请求路由计算文档所属主分片位置定位写入节点
主副同步写入内存缓冲区 + 记录 Translog保证数据冗余与一致性
刷新(Refresh)生成 Lucene 段文件实现近实时搜索
刷盘(Flush)持久化数据 + 清理 Translog确保数据安全存储
段合并(Merge)合并小段 + 删除失效文档优化查询性能与存储效率

        注‌:副本分片同步失败时,主分片会重试或报告错误;若主分片故障,副本分片将晋升为新主分片继续服务。

http://www.xdnf.cn/news/14597.html

相关文章:

  • 酒店住宿自助入住系统——店铺自动运营—仙盟创梦IDE
  • 【达梦数据库】忘记SYSDBA密码处理方法-已适配
  • Python导论、数据类型、运算、I/O
  • 华大北斗TAU951M-P200单频定位模块 多系统冗余保障永不掉线 物流/车载导航首选
  • MySQL学习(1)——基础库操作
  • 开关电源:BUCK和BOOST
  • 逆向某物 App 登录接口:还原 newSign 算法全流程
  • 《情感反诈模拟器》2025学习版
  • 装配体镜像阵列与爆炸视图-装配体设计技能(2)
  • 算法-动态规划-钢条切割问题
  • 数智管理学(二十四)
  • C# Quartz.net 定时任务
  • Java Spring框架的核心原理详解
  • JDK 动态代理: 它的工作原理是什么?它有什么限制?
  • Linux系统基本操作指令
  • 深度实战|星环OS三大创新场景解密:如何用确定性技术重构智能汽车安全与体验?
  • K8s入门指南:架构解析浓缩版与服务间调用实战演示
  • 【51单片机定时中断 工作方式0, 1ms 初值是如何计算的?】2022-5-13
  • vue3 el-table 行颜色根据 字段改变
  • 【论文阅读 | CVPR 2024 |Fusion-Mamba :用于跨模态目标检测】
  • Python打卡训练营Day56
  • 【单调栈】-----【Largest Rectangle in a Histogram】
  • AWS VPC 子网划分实战指南:从基础到进阶
  • 人人都是音乐家?腾讯开源音乐生成大模型SongGeneration
  • 人工智能学习51-ResNet训练
  • 【51单片机2位数码管100毫秒的9.9秒表】2022-5-16
  • 【转】如何画好架构图:架构思维的三大底层逻辑
  • 大数据时代的“广告魔法”:精准投放到底怎么玩?
  • 软件工程概述:核心概念、模型与方法全解析
  • 58-Oracle Autotrace功能和演进