ElasticSearch原理总结

ES原理总结

—ES写数据:
ES里写的流程,有四个底层的核心概念:refresh、flush、translog、merge

—ES读数据的过程

查询—GET到某一条数据
(1)可以通过 doc id 来查询,会根据 doc id 进行 hash,判断出来当时把 doc id 分配到了哪个 shard 上面去,从那个 shard 去查询。
(2)客户端发送请求到任意一个 node,成为 coordinate node 。
(3)coordinate node 对 doc id 进行哈希路由,将请求转发到对应的 node,此时会使用 round-robin 随机轮询算法,在 primary shard 以及其所有 replica 中随机选择一个,让读请求负载均衡。
(4)接收请求的 node 返回 document 给 coordinate node 。
(5)coordinate node 返回 document 给客户端。

—搜索 全文检索
客户端发送请求到协调节点
协调节点将搜索请求转发到所有的shard对应的primary shard 或 replica shard ,都可以。

query phase:每个 shard 将自己的搜索结果(其实就是一些 doc id )返回给协调节点,由协调节点进行数据的合并、排序、分页等操作,产出最终结果。

fetch phase:接着由协调节点根据 doc id 去各个节点上拉取实际的 document 数据,最终返回给客户端。

–ES在数据量很大的情况下如何提高查询效率

(1)性能优化的杀手锏 – filesystem cache
减少数据量仅仅放要用于搜索的几个关键词即可,尽量写入的数据跟es机器的filesystem cache是差不多的就可以了。

(2)数据预热
把搜索频率比较高的数据定时放到filesystem cache中。

(3)冷热分离
做类似mysql的水平拆分,就是将大量的访问很少,单独写一个索引,然后将很频繁热数据单独写一个索引,频繁热数据全部放到缓存中,冷数据放到磁盘上。

(4)document模型设计
设计es中的数据模型

(5)分页的性能优化

a、不允许深度分页(默认深度分页性能很差)
b、类似于app中的不断一页一页的,不能挑选页跳转,也可以用 search_after 来做, search_after 的思想是使用前一页的结果来帮助检索下一页的数据
可以用scroll api

简单介绍下生产环境es集群的架构情况

(1)es生产集群部署了5台数据,每台机器是6核64G的,集群总内存是320G
(2)es集群的日增量数据大概是2000万条数据,每天日增量数据大概是500MB,每月增量数据大概是6亿15G,系统已经几个月,大概数据总量是100G左右。
(3)目前线上大概是有5个索引。每个索引的数据量大概是20G,所以这个数据量之内,每个索引分配的是8个shard,比默认的5个shard多个3个shard。

来源:https://www.icode9.com/content-4-781051.html

(0)

相关推荐

  • 一次看完28个关于ES的性能调优技巧

    后台回复'书',获取 来源:elasticsearch.cn/article/6202 因为总是看到很多同学在说Elasticsearch性能不够好.集群不够稳定,询问关于Elasticsearch的 ...

  • ES的一知半解

    一个互联网应用(例如网上商城),搜索功能基本上是必备的.搜索的解决方案要快,最好有一个零配置和完全免费的搜索模式,能够简单地使用JSON通过HTTP的索引数据.搜索服务器始终可用,并能够从一台扩展到数 ...

  • ES相关知识

    ElkStack介绍 对于日志来说,最常见的需求就是收集.存储.查询.展示,开源社区正好有相对应的开源项目:logstash(收集).elasticsearch(存储+搜索).kibana(展示),我 ...

  • 图解 ElasticSearch 原理,你可收好了!

    Stored Field 字段查找 当我们想要查找包含某个特定标题内容的文件时,Inverted Index 就不能很好的解决这个问题,所以 Lucene 提供了另外一种数据结构 Stored Fie ...

  • 图解 ElasticSearch 原理,写得太好了!

    更多干货等你发现! 作者:Richaaaard 来源:https://www.cnblogs.com/richaaaard/ Elasticsearch 是一款功能强大的开源分布式搜索与数据分析引擎, ...

  • 〈四〉ElasticSearch的认识:基础原理的补充

    目录 想想我们漏了什么 回顾 补回 集群的建立 集群发现机制 配置文件 健康状态 补充: 小节总结 分片的管理 梳理 分片的均衡分配 主副分片的排斥 容错性: 数据路由 对于集群健康状态的影响 小节总 ...

  • 世界微笑日 | “笑一笑,十年少”的心理学原理

    迪香式微笑 法国的一位医生迪香曾在1860年做过个实验.他用适度的电极电流刺激实验者的面部肌肉,看不同的肌肉动作可以产生什么样的表情.记录发现,人们微笑的时候动用了三块肌肉:嘴角肌.颧骨肌和眼角肌.嘴 ...

  • 【感应式IC卡】S50卡技术资料和工作原理

             S50卡,采用NXP MF1 IC S50制作的非接触智能卡,通常简称S50卡.Mifare 1K卡.M1卡或直接简称感应式IC卡,符合ISO14443A标准,拥有4字节UID号,是 ...

  • 考前冲刺 | 2021年高考政治之《生活与哲学》常考原理及方法论,收藏必背~

    来源:本文转自[好好向上高中政治],对作者的付出表示衷心感谢,如有不当,我们会第一时间删除.

  • 一文轻松看懂区块链的工作原理

    作者注:这篇文章是写给非计算机专业的朋友的科普文,尽量避开了比较专业的细节.如果你是计算机相关专业,或者具备一定数据结构.算法.密码学的知识,建议直接看文末参考资料中的三篇博文,或者更专业的资料. 区 ...

  • 省煤器原理动画

    省煤器原理动画

  • 同样的步骤和调味,为何炒的菜不好吃?你可能没注意这4个烹饪原理

    不过很多很多时候我们按照教学的步骤,以及调味料施用的量来做菜,但是结果却老是差强人意,这不是教做饭的人有所保留,那很可能是因为你没有注意烹饪中的这4个原理. 热锅凉油 热锅凉油是中式烹饪中最常见的烹调 ...