分布式文档储存————elasticsearch学习笔记(四)

这篇具有很好参考价值的文章主要介绍了分布式文档储存————elasticsearch学习笔记(四)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

路由一个文档到分片中

之前有提到一个文档至少被储存在一个主分片中,副本分片可以有多个,但是主分片至少有一个。
因此,例如一个集群被设置有3个主分片,为了保证文档被均匀的存储在这些主分片,es会根据routing(可能是文档的id或自己设置),通过一个hash算法将文档分配到一个主分片中进行储存。
这个过程有些像hashmap将一个键值对储存到底层的链表中的算法。
这样做的目的,就是让文档均匀地分布在分片中。
分布式文档储存————elasticsearch学习笔记(四)

新建或删除文档

分布式文档储存————elasticsearch学习笔记(四)

  1. 客户端向节点1发送新建、索引或删除文档的请求;
  2. 通过id计算文档属于分片P0,主节点向node3转发请求;
  3. node3在主分片执行请求,如果请求成功,会将结果通知给副本分片所在的节点node1和node2;
  4. 一旦所有的副本分片都执行成功,会向主节点报告执行结果,主节点会向客户端报告执行结果。

取回单个文档

分布式文档储存————elasticsearch学习笔记(四)

  1. 客户端向主节点node1发送请求;
  2. 结点使用文档的id知道文档所处的分片时分片P0,P0的副本分片R0处于节点2上,因此将请求转发给节点2;
  3. node2将结果返回给主节点node1,node1将结果返回给客户端。

在处理读取请求时,主结点在每次请求的时候都会通过轮询所有的副本分片来达到负载均衡。也就是确定请求分配给“不忙”的结点。

局部更新文档

  1. 客户端向主节点发送强求;
  2. 主节点将请求转发到文档所在的节点;
  3. node3从主节点接受到请求,尝试修改文档,如果此时有别的线程在修改文档,则继续尝试步骤三,超过 retry_on_conflict 次后放弃;
  4. node3成功修改后,它将新版本的文档转发到node1和node2的副本节点上,重新建立索引,当所有的副本片区都完成文档更新,会告知主节点,主节点向客户端返回成功。

结论

从es储存、更新机制来看,文档的储存过程非常耗费时间和空间,如果在结构化数据库储存的数据只有一份,在es当中,则需要储存主分片和所有的副本分片,一次新增和修改都需要若干个节点参与。但是正因为每个数据的每个字段都被索引了,es的查询,分析效率非常高。文章来源地址https://www.toymoban.com/news/detail-421633.html

到了这里,关于分布式文档储存————elasticsearch学习笔记(四)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • elasticsearch(ES)分布式搜索引擎03——(RestClient查询文档,ES旅游案例实战)

    文档的查询同样适用昨天学习的 RestHighLevelClient对象,基本步骤包括: 1)准备Request对象 2)准备请求参数 3)发起请求 4)解析响应 我们以match_all查询为例 3.1.1.发起查询请求 代码解读: 第一步,创建 SearchRequest 对象,指定索引库名 第二步,利用 request.source() 构建DSL,DSL中可

    2024年02月07日
    浏览(49)
  • elasticsearch(ES)分布式搜索引擎01——(初识ES,索引库操作和文档操作,RestClient操作索引库和文档)

    1.1.1.elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容 1.1.2.ELK技术栈 elasticsearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应用在日志数据分析、实时监控等领域: 而elasticsearc

    2024年02月07日
    浏览(60)
  • 【分布式云储存】Springboot微服务接入MinIO实现文件服务

    上篇博客我们介绍了分布式云存储MinIO作业环境的搭建,以及分布式云储存MinIO在实际的文件服务中的优势。那么,今天我们就小试牛刀来将MinIO接入我们的微服务项目,实现一个分布式的文件服务器。 MinIO 提供高性能、与S3 兼容的对象存储系统,让你自己能够构建自己的私有

    2024年02月07日
    浏览(50)
  • 分布式搜索引擎Elasticsearch基础入门学习

    Elasticsearh 是 elastic.co 公司开发的分布式搜索引擎。 Elasticsearch(简称ES)是一个开源的分布式、高度可扩展的全文搜索和分析引擎。它能够快速、近乎实时的存储、搜索和分析大量数据。适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型数据。 它通

    2024年02月03日
    浏览(37)
  • 阿里架构师分享分布式架构笔记文档:Nginx+Redis+ZK+Kafka+MQ等

    Nginx 是一款非常优秀的开源软件,工作需要,研究了很久一段时间的 Nginx 源码,在研究学习的过程中收益颇多。作为高性能服务器的代表,为了追求极致的高性能,在许多方面,Nginx 的源码实现都可以称得上是典范。 市面上真正适合学习的Nginx资料太少,有的书或资料虽然讲

    2024年02月10日
    浏览(51)
  • 【分布式云储存】高性能云存储MinIO简介与Docker部署集群

    分布式存储服务一直以来是中大型项目不可或缺的一部分,一般常用的商用文件服务有七牛云、阿里云等等,自建的开源文件服务有FastDFS、HDFS等等。但是对于这些方案有的需要付费有些却太过于笨重,今天我们就分享一款轻量级完全可替代生产的高性能分布式储存服务Mini

    2024年02月07日
    浏览(57)
  • 分布式锁,学习笔记

    什么是分布式锁 1.1 作用: 保证数据的正确性: 比如:秒杀的时候防止商品超卖,接口幂等性。 避免重复处理数据: 比如:1避免调度任务在多台机器重复执行,2避免缓存过期所有请求都去加载数据库。 一个分布式锁需要考虑的问题: 1互斥阻塞。2锁需要可重入。3过期时间

    2024年02月17日
    浏览(39)
  • 分布式学习笔记

    Consistency(一致性):用户访问分布式系统中的任意节点,得到的数据必须一致。 Availability(可用性):用户访问集群中的任意健康节点,必须得到相应,而不是超时或拒绝。 Partition tolerance (分区容忍性):因为网络故障或其他原因导致分布式系统中的部分节点与其他节点

    2024年02月20日
    浏览(32)
  • Spring Cloud学习(九)【Elasticsearch 分布式搜索引擎01】

    Elasticsearch 是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容。 elasticsearch 结合 kibana、Logstash、Beats,也就是 elastic stack(ELK) 。被广泛应用在日志数据分析、实时监控等领域。 elasticsearch 是 elastic stack 的核心,负责 存储、搜索、分析数据 。

    2024年02月05日
    浏览(40)
  • Spring Cloud学习(十一)【深入Elasticsearch 分布式搜索引擎03】

    聚合(aggregations)可以实现对文档数据的统计、分析、运算。聚合常见的有三类: 桶(Bucket)聚合:用来对文档做分组 TermAggregation:按照文档字段值分组 Date Histogram:按照日期阶梯分组,例如一周为一组,或者一月为一组 度量(Metric)聚合:用以计算一些值,比如:最大值

    2024年01月23日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包