elasticSearch5-原理解析

本文详细介绍了Elasticsearch的近实时搜索原理,包括segment、translog、commit、refresh和flush过程。此外,还讨论了段合并机制、数据写一致性的保证、query机制以及优化策略,提供了深入理解Elasticsearch内部运作的见解。
摘要由CSDN通过智能技术生成

一:近实时搜索原理

 

先认识几个基本概念:

1、segment

es基本存储单元是shard,index分散在多个shard上。 而每个shard由多个段-segment组成,每次创建一个新Document(一条新数据),就会归属于一个新的segment。 删除数据时,也不会直接删除当前segment,只是标记为已删除状态,后续在合适时机删除。

2、translog

操作日志,用来记录操作动作,防止数据丢失。 每个shard中对应一个translog文件。

3、commit

提交,意味着将多个segment,合并成新的更大的segment,并刷入磁盘。

4、refresh

es索引数据时,先是写入到内存buffer中,默认1s执行一次refresh操作,刷新到一个新的segment中,在segment中数据才具备被检索的结构,才能被查询。当写入segment后,会清空内存buffer。 所以近实时搜索通常指的是: 写入数据1s后才能被检索。

当然,可以改变默认时长(时长为-1代表关闭刷新):

PUT /mytest/_settings 
{
  "refresh_interval": "20s"
}

或者直接调用refresh的api:

POST /_refresh    刷新所有索引

POST /mytest/_refresh     刷新某个索引

PUT /mytest/_doc/1?refresh=true      //刷新具体文档数据
{
  "test": "test"
}

5、flush

数据清洗,将内存缓冲区、segments中、translog等全部刷盘,成功后清空原数据和translog。

默认每30分钟执行一次,或者translog变大超过设定值后触发。

commit需要一个fsync同步操作来保证数据物理的被成功刷盘,假如每一个写操作都这样,那么性能会大大下降。 es在内存buffer与磁盘之间,引入了文件系统缓存。 refresh将数据刷到新的segment,这些segment其实是先存在于文件系统缓存,后续再刷盘。

整体流程:

 当es收到写请求后,数据暂时写入内存buffer,并添加translog。默认1s后,refresh数据到file system cache,并清空内存buffer。 30分钟后,执行flush刷数据到磁盘(tanslog大小超过设定阈值也会执行flush)。

分片默认会30分钟执行一次flush,也可手动调用api:

POST /mytest/_flush        刷新某一个索引

POST /_flush?wait_for_ongoin         刷新所有索引直到成功后返回
(手动调用flush情况很少,不过要关闭索引或者重启节点时,最好执行一下。因为es恢复索引或者重新打开索引时,它必须要先把translog里面的所有操作给恢复,所以也就是说translog越小,recovery恢复操作就越快)

上面说了数据的流程,现在看看translog是如何工作的?

当数据被refresh期间,新的操作日志会继续追加到translog,默认每次写请求(如 index, delete, update, bulk)都会刷盘。 这样会有很大的性能问题,所以如果能容忍5s内的数据丢失情况,还是使用每5s异步刷盘的方式。

配置如下:

PUT /mytest/_settings 
{
  "index.translog.durability": "async",
  "index.translog.sync_interval": "5s"
}

要保证完全可靠,还是使用默认配置:

PUT /mytest/_settings 
{
  "index.translog.durability": "request"
}

流程图: 

二: 段合并机制 

 在索引数据过程中,每一次的refresh都会创建新的segment,数量会越来越多,影响内存和CPU运行,查询也会在多个段中,影响性能。

所以,es会使用

ElasticSearch5.5.0安装(Linux)
leizhang1225的博客
03-29 502
一、部署环境Java1.8.0 CentOS6.8 Elasticsearch5.5.0二、前期准备1.创建普通用户:groupadd elasticsearch  ;useradd  name -g elasticsearch -p elasticsearch2.修改系统参数:vi /etc/security/limits.conf添加如下内容:* soft nofile 65536* har...
ElasticSearch 5学习(4)——简单搜索笔记
weixin_30369087的博客
12-13 131
空搜索: GET /_search hits: total 总数 hits 前10条数据 hits 数组中的每个结果都包含_index、_type和文档的_id字段,被加入到_source字段中这意味着在搜索结果中我们将可以直接使用全部文档。 每个节点都有一个_score字段,这是相关性得分(relevance score),它衡量了文档与查询的匹配程度。默认的,返回的结果中关联性最大的文档排在...
Elasticsearch(5)
胖大xian
02-18 227
Elasticsearch分词 文章目录Elasticsearch分词一、简介二、格式三、安装中文(ik)分词器四、自定义扩展库1. 安装nginx2. 新建配置文件3. 测试4. 修改ik分词器配置5. 重启es 官方文档 一、简介 一个tokenizer(分词器)接收一个字符流,将之分割为独立的tokens(词元,通常是独立的单词),然后输出tokens流。 例如:whitesepace tokenizer遇到空白字符时分割文本。它会将文本”Quick beown fox!“分割为[Quick,beow
Elasticsearch05——概念和原理
如不來的博客
06-21 420
一、核心概念 1、索引(index)  一个索引就是一个拥有相似特征的文档的集合。比如说,你可以有一个客户数据的索引,一个产品目录的索引,还有一个订单数据的索引。一个索引由一个名字来标识(必须全部是小写字母),并且当我们要对这个索引中的文档进行索引、搜索、更新和删除的时候,都要使用到这个名字。在一个集群中,可以定义任意多的索引。  能搜索的数据必须索引,这样的好处是可以提高查询速度。Elasticsearch 索引的精髓:一切设计都是为了提高搜索的性能。 2、类型(type)  在一个索引中,你可以定义一种
Elasticsearch 5: 聚集查询
Fisher3652的博客
02-24 2194
目录1. 聚集查询2. 指标聚集2.1 平均值聚集2.1.1 avg 聚集2.2 计数聚集与极值聚集2.2.1 计数聚集2.2.2 极值聚集2.3 统计聚集2.3.1 stats 聚集2.3.2 extended_stats 聚集 文中使用的数据可以参考Elasticsearch 数据检索和分析导入数据相关内容 1. 聚集查询 聚集查询(Aggregation)提供了针对多条文档的统计运算功能,它不是针对文档本身内容的检索,而是要将它们聚合到一起运算某些方面的特征值。 聚集查询与 SQL 语言中的聚集
Elasticsearch实战与原理解析 源代码.zip
06-06
这份"**Elasticsearch实战与原理解析 源代码**"的压缩包文件提供了关于这个强大工具的实践案例和源代码,旨在帮助用户深入理解和掌握Elasticsearch的核心功能和工作原理。 首先,我们要了解Elasticsearch的基本概念...
elasticsearch-analysis-ik-7.4.0
04-02
Elasticsearch Analysis IK 7.4.0:深度解析全文检索与大数据处理》 Elasticsearch Analysis IK 7.4.0 是一个专为Elasticsearch设计的中文分词插件,它在大数据和搜索引擎领域扮演着至关重要的角色。这款插件的...
Elasticsearch原理解析与性能调优
最新发布
06-24
### Elasticsearch原理解析与性能调优 #### 一、Elasticsearch概述 Elasticsearch是一个高度可扩展的开源全文搜索和分析引擎,以其强大的搜索能力和灵活性而闻名。它能够快速地存储、搜索和分析大量的数据,并且...
Elasticsearch5快速入门
PanKuanYew的博客
12-07 754
                                                       Elasticsearch5快速入门                                                                                       作者:PanKuanYew   一、Elasticsearch概述   ...
Elasticsearch学习5:查询
tyw15的博客
09-02 133
Elasticsearch URI search 查询语法整理
Elasticsearch 05 基础操作
loetca
01-02 328
Elasticsearch 05 基础操作
在Linux上安装Elasticsearch5.x
diaoyuanrui9456的博客
07-05 143
之前讲过在Windows上安装Elasticsearch5.x,但实际生产环境还是需要Linux支持,而且ES在Linux环境下运行要比Windows环境下要高,So...Linux上还是要学会安装。经过自己的研究还有同事的帮助,终于搞定Linux下安装Elasticsearch5.x了。 前言 1、这里我的系统是阿里云的 CentOS 7.2 64位,2核4G 2、$开始的命令表...
Elasticsearch5入门(1)简介
06-16 130
下面这些内容尽量去理解就好,明白大概意思,不要去咬文嚼字 Elasticsearch是一个高度可扩展的开源全文搜索和分析引擎。它允许您快速,实时地存储,搜索和分析大量数据。它通常用作为具有复杂的搜索功能和要求的应用程序提供的底层引擎/技术。 以下是Elasticsearch可用于以下几个示例用...
Elasticsearch5.5.2 安装教程
liutaomee的博客
09-06 1265
最近学习Elasticsearch,顺便记录下操作步骤,供日后参考 安装环境 CentOS release 6.6 1、因Elasticsearch是基于Java写的,所以它的运行环境中需要java的支持,在Linux下执行命令:java -version,检查Jar包是否安装 安装java版本至少是1.8以上 2、首先准备下载Elasticsearch5.
elasticsearch5.5
weixin_30500663的博客
03-07 71
1.不能以root用户运行 groupadd es #增加es组 useradd es -g es -p pwd #增加es用户并附加到es组 chown -R es:es elasticsearch-5.1.1 #给目录权限 su es #使用es用户 ./bin/elasticsearch -d ...
Elasticsearch5.x学习经验总结(一)
leixingbang的专栏
07-17 1840
Elasticsearch5.x学习经验总结(一)                                                                                           By/54dabang 写在前面 博主自2016年7月6日通过校招加入某互联网公司以来,主要负责es的维护和开发工作,从纯技术小白开始,中间挖坑无数,一步步对es
Elasticsearch-ES 5.x (Head,Kibana,X-Pack) 集群的部署、配置、测试
热门推荐
zhe1110的博客
03-31 1万+
Elasticsearch-ES 5.x (Head,Kibana,X-Pack) 集群的部署、配置、测试 搭建环境为公司的三台 CentOS 7.3测试服务器 版本5.2.2 拓展组件 Head,Kibana,X-Pack 1 安装前准备 1、Elasticsearch的版本选择5.2.2; 2、ES的常用组件安装,Kibana、Sense等; 3、ES主节点选择1
Elasticsearch学习笔记(三)Elasticsearch5.1.2安装
刘本龙的专栏
01-24 1万+
下载首先到官网下载最新的5.1.2的安装包,下载地址:https://www.elastic.co/products/elasticsearch解压tar -zxvf elasticsearch-5.1.2.tar.gz修改jdk版本注意,elasticsearch需要使用jdk8,但是由于我对Linux还跑着其他的程序,所以要在.sh启动shell脚本中指定JDK的版本 修改elasticsea
ElasticSearch 5.52支持通过SQL查询数据
strengthen8的博客
09-21 617
ElasticSearch-SQL 5.5.2 安装及配置 目录 一、ElasticSearch-SQL介绍 1 二、ElasticSearch-SQL安装 1 2.1环境介绍: 1 三、安装ElasticSearch-SQL 5.5.2插件 2 3.1.安装es-sql依赖node npm 2 3.2 下载es-sql并安装 2 3.3安装配置es-sql的...
elasticsearch实战与原理解析下载
07-18
另一方面,Elasticsearch的原理解析是对Elasticsearch的底层原理进行深入剖析的一本书。它从分布式系统的角度出发,阐述了Elasticsearch的分片和复制机制、搜索和分析的实现原理以及缓存和路由等关键技术。此外,该...
写文章

热门文章

  • spring中使用quartz框架(持久化到数据库+springboot) 24561
  • elasticSearch4-搜索实战 2582
  • rabbitmq集群(一)介绍 2541
  • elasticSearch5-原理解析 2346
  • 【SpringCloud-5】gateway网关 2076

分类专栏

  • jvm 3篇
  • mongodb
  • web 5篇
  • mysql 6篇
  • SpringCloud 9篇
  • 随手记 19篇
  • 分布式 5篇
  • elasticsearch 5篇
  • SpringSecurity 1篇
  • java数据结构 9篇
  • 消息队列 5篇
  • spring boot 1篇
  • springmvc 2篇
  • 设计模式 12篇
  • spring 3篇
  • mybatis 4篇
  • 缓存 9篇
  • java 1篇

最新评论

  • Mybatis3-架构和源码

    Xd聊架构: 感谢博主分享,写的不错,加油

  • java基础

    growing_duck: 谢谢,自己随便整理的,方便复习时候用。 后面会继续更新

  • java基础

    不吃西红柿丶: 非常有用,谢谢大佬整理~

  • 【mysql-5】mysql集群架构-实战

    不正经的kimol君: 放弃不难,但坚持一定很酷!

  • 【redis-6】redis集群与分区

    向彪-blockchain: 分析的很到位,学到了很多,大赞!

最新文章

  • 【并发编程-3】线程池
  • 【并发编程-2】JUC-1
  • 【并发编程-1】多线程与并发设计
2023年18篇
2022年16篇
2021年28篇
2020年23篇
2017年21篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

玻璃钢生产厂家资兴玻璃钢关公雕塑宜春玻璃钢马雕塑成都玻璃钢卡通雕塑批发长春仿铜玻璃钢雕塑制作衢州动物玻璃钢雕塑供应商安宁市玻璃钢雕塑设计如何福建常见商场美陈售价福建玻璃钢花盆批发玫红色玻璃钢花盆石河子玻璃钢雕塑厂家小品系列玻璃钢雕塑厂家公园摆件玻璃钢人物雕塑尺寸运城玻璃钢雕塑厂瓢虫玻璃钢雕塑镇江百货商场美陈丽水玻璃钢海豚雕塑价格金昌人物玻璃钢雕塑设计海口商场美陈公司服务为先福建雕塑玻璃钢雕塑定制贵阳玻璃钢雕塑定制怎么收费春节商场美陈吊旗南京玻璃钢园林雕塑厂家直销成都的玻璃钢熊猫雕塑在哪里江苏玻璃钢雕塑企业浙江季节性商场美陈生产企业广东常见商场美陈现价潮州玻璃钢运动人物雕塑泉州玻璃钢海豚雕塑价格深圳主题商场美陈采购玻璃钢雕塑龙头哪里有卖香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化