ElasticSerach学习(四)-架构设计理解

简介: ElasticSerach学习(四)-架构设计理解

es文档落盘

当写入数据时主要分为以下几步:

  1. 先写入lucene的index文件,es为全文检索做了优化,分段索引文件
  2. 将分段文件写入内存
  3. 记录写入日志,类似数据库的binlog,保证数据的安全
  4. 从内存写入操作系统文件缓冲区,写入缓冲区之后就可以进行查询了
  5. 从缓冲区进行落盘,写入磁盘


因为刷盘操作比较消耗io,所以刷盘操作一般可以间隔时间长一点(30min),但是refresh就要比较快,要达到类似实时的效果(1s)


es读取数据架构

读取数据:

  1. 客户端发送请求到协调节点
  2. 协调节点查询存在数据的所有分片和副本分片
  3. 采用轮询策略查询数据
  4. 返回客户端


es写入数据架构

与读取数据结构类似

  1. 客户端发送请求到协调节点
  2. 协调节点将存储的数据转换到对应的节点
  1. 这里的转换是根据公式计算数据应该存在哪个分片上===== hash(id)%主分片的数量 = 分片的位置
  2. 这也是为什么分片数不能修改的原因,分片数一旦改变,则数据位置就变化了
  1. 对应的主分片写入数据
  2. 副本写入数据
  3. 主分片反馈客户端
目录
相关文章
|
7月前
|
存储 关系型数据库 数据库
个人学习ack-eci架构
针对无状态应用进行容器化改造,同时有应对高峰业务以及定时、批量计算任务对容器集群节点计算资源有高弹性低成本优化的需求的用户,利用云上资源的灵活性和规模化优势,构建云上高弹性、稳定、成本优化的服务。
87 0
|
7月前
|
存储 弹性计算 安全
云计算——ACA学习 云计算架构
云计算——ACA学习 云计算架构
324 0
|
5月前
|
存储 分布式数据库 数据库
Hbase学习二:Hbase数据特点和架构特点
Hbase学习二:Hbase数据特点和架构特点
89 0
|
3月前
|
设计模式 架构师 Java
Java开发工程师转架构师需要学习什么
Java开发工程师转型为架构师需掌握多项技能:精通Java及框架、数据库与分布式系统;熟悉设计模式与架构模式;积累项目经验;提升沟通与领导力;持续学习新技术;培养系统设计与抽象能力;了解中间件及开发工具;并注重个人特质与职业发展。具体路径应结合个人目标与实际情况制定。
76 18
|
3月前
x86体系架构学习
x86体系架构学习
|
4月前
|
机器学习/深度学习 算法 网络架构
神经网络架构殊途同归?ICML 2024论文:模型不同,但学习内容相同
【8月更文挑战第3天】《神经语言模型的缩放定律》由OpenAI研究人员完成并在ICML 2024发表。研究揭示了模型性能与大小、数据集及计算资源间的幂律关系,表明增大任一资源均可预测地提升性能。此外,论文指出模型宽度与深度对性能影响较小,较大模型在更多数据上训练能更好泛化,且能高效利用计算资源。研究提供了训练策略建议,对于神经语言模型优化意义重大,但也存在局限性,需进一步探索。论文链接:[https://arxiv.org/abs/2001.08361]。
55 1
|
6月前
|
设计模式 前端开发 Java
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
95 1
|
6月前
|
存储 SQL 分布式计算
技术心得记录:深入学习HBase架构原理
技术心得记录:深入学习HBase架构原理
|
7月前
|
Kubernetes API 调度
Kubernetes学习-核心概念篇(二) 集群架构与组件
Kubernetes学习-核心概念篇(二) 集群架构与组件
下一篇
DataWorks