ES写数据延迟问题

这篇具有很好参考价值的文章主要介绍了ES写数据延迟问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 ES写数据延迟问题

问题背景

在index后有一个refresh_interval默认1秒,在这个时间间隔内search是不可见的。 

解决elasticsearch更新数据后不能立即刷新的问题_啦啦不要熬夜啊的博客-CSDN博客_es更新后立马刷新

写数据----->ES内存 buffer(缓存区)-------定期refresh成segment------>os系统文件缓冲区(在这里的数据对搜索可见)---->磁盘

refresh:Elasticsearch 刚索引的文档并不是立即对搜索可见,它们会先在内存 buffer(缓存区)中,buffer 数据满后或主动刷新操作才会进行refresh写入到文件缓存区中,便可以搜索。每秒refresh清空一次写缓冲的时候会产生一个新的Lucene 分段,新段先1.refresh写入文件系统缓存,但稍后再执行2.flush刷磁盘操作,写操作很快会执行完,一旦写成功,就可以像其他文件一样被打开和读取了。由于系统先缓冲一段数据才写到os缓存,且新段不会立即刷入磁盘,这两个过程中如果出现某些意外情况(如主机断电),则会存在丢失数据的风险。通用的做法是记录事务日志,每次对ES进行操作时均记录事务日志,当ES启动的时候,重放translog中所有在最后一次提交后发生的变更操作。

但是分段数量太多会带来较大的麻烦,每个段都会消耗文件句柄、内存。每个搜索请求都需要轮流检查每个段,查询完再对结果进行合并;所以段越多,搜索也就越慢。因此需要通过一定的策略将这些较小的段合并为大的段,常用的方案是选择大小相似的分段进行合并。在合并过程中,标记为删除的数据不会写入新分段,当合并过程结束,旧的分段数据被删除,标记删除的数据才从磁盘删除。


频繁refrsh的危害:每次索引的refresh会产生一个新的Lucene段,这会导致频繁的segment merge行为,如果不需要这么高的搜索实时性,应该降低索引refresh周期

解决方案

1.写数据时候,加上刷新策略

2.代码制定refresh的时间

3.通过ui层解决。比如更新成功后,弹出提示框

es 更新延迟问题_Zephyrrrrrrrrr的博客-CSDN博客

近实时搜索 | Elasticsearch: 权威指南 | Elastic

1.批量删除操作,加上刷新策略(等待分片与备份刷新完成后再返回),强制将缓存中的数据,刷到os缓冲区,保证下次读取,不会读到已经被删除的数据

关于elasticsearch批量删除后立马查询还能查出被删除的数据的问题文章来源地址https://www.toymoban.com/news/detail-798505.html

到了这里,关于ES写数据延迟问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • ES(elasticsearch)中遇到elasticsearch.keystore的问题,已解决!!!

    ES(elasticsearch)中遇到elasticsearch.keystore的问题,已解决!!!

    提示:Linux中部署elasticsearch7.8.0 在处于非root权限下,启动elasticsearch,遇到了elasticsearch.keystore的问题 提示:在启动之前,已经给elasticsearch文件夹全部授权为非root权限可以访问,但是elasticsearch.keystore给文件是在启动之后生成的,默认启动权限为root所以无法继续访问下去。 提

    2024年02月06日
    浏览(9)
  • elasticsearch-head 连接ES出现401问题解决

    elasticsearch-head 连接ES出现401问题解决

    写在前面:ES 和elasticsearch-head 安装在同一台机器,ES启用了X-pack,但是在elasticsearch-head 连接时提示401无权限访问,查了好久,找到了解决方案。 问题: 解决方法: 修改ES配置文件,elasticsearch.yml,添加如下一行内容: 然后重启Es服务,即可正常连接访问。

    2024年02月16日
    浏览(13)
  • Elasticsearch实战-数据同步(解决es数据增量同步)

    Elasticsearch实战-数据同步(解决es数据增量同步)

    之前测试的数据都是一次从mysql导入到es,随着时间的推移,每天都有可能发生增删改查,不可能每次都全量同步,所以需要考虑增量同步问题。 缺点: 耦合性高,服务之间会相互影响 依赖消息队列的可靠性 启动:端口8099

    2024年02月11日
    浏览(11)
  • 【工作记录】springboot集成spring-data-elasticsearch访问es及问题解决

    【工作记录】springboot集成spring-data-elasticsearch访问es及问题解决

    ​ 前文我们介绍了通过可视化爬虫爬取新闻到Mysql库、基于docker-compose的elk集群部署及抽取mysql数据到es的过程,本文我们介绍通过集成springboot和spring-data-elasticsearch客户端完成连接es并查询数据的开发过程以及遇到的问题和解决方案,希望对大家能有所帮助,对文中内容有任何

    2023年04月10日
    浏览(13)
  • 解决在使用 Elasticsearch(ES)多线程批量操作时导致并发一致性的问题!!

    解决在使用 Elasticsearch(ES)多线程批量操作时导致并发一致性的问题!!

    先说一下什么是数据库数据库中 并发一致性 问题! 1、在并发环境下,事务的隔离性很难保证,因此会出现很多并发一致性问题。 数据丢失 T1 和 T2 两个事务都对一个数据进行修改,T1 先修改,T2 随后修改,T2 的修改覆盖了 T1 的修改。 读脏数据 T1 修改一个数据,T2 随后读取

    2024年02月04日
    浏览(16)
  • elasticSearch大量数据查询导出报错解决es

    elasticsearch的client包下的HeapBufferedAsyncResponseConsumer类中传入了bufferLimit,该值 org.apache.http.nio.protocol.HttpAsyncResponseConsumer 的默认实现。在堆内存中缓冲整个响应内容,这意味着缓冲区的大小等于响应的内容长度。根据可配置的参数限制可以读取的响应的大小。如果实体长于配置

    2023年04月16日
    浏览(12)
  • es elasticsearch 十四 各种机制 评分机制 正序索引 解决跳跃结果问题 解决耗时过长问题 解决相同属性值都到一个地方

    es elasticsearch 十四 各种机制 评分机制 正序索引 解决跳跃结果问题 解决耗时过长问题 解决相同属性值都到一个地方

    目录 评分机制 机制 查看评分实现如何算出来的explain=true 分析能否被搜索到 Doc value 正排序索引 Query phase Fetch phase Preference 问题 解决跳跃结果问题 Timeout 到达时间直接返回,解决耗时过长问题 Routing 数据准确分配到某地,解决相同属性值都到一个地方 评分机制 机制 TF分词频

    2024年02月08日
    浏览(18)
  • 解决ES只能查询10000条数据的问题

    这篇文章是翻译过来的,原文在此,需要科学上网。 当查询页很深或者查询的数据量很大时,深查询就会出现。es 的自我保护机制允许的一次最大查询量是 10000 条数据。在请求中加入 trackTotalHits(true) 可以解除10000条的上限。 from size 这种实现方式有点类似于 MySQL 中的 limit。

    2024年02月12日
    浏览(13)
  • ChatGPT 学习 ES & lucene 底层写入原理,源码

    ChatGPT 学习 ES & lucene 底层写入原理,源码

    一直有个疑问“学习最新版lucene 数据写入相关的源码,应该看哪些源码,以什么顺序看(先看什么,后看什么)?” 在学习Lucene的数据写入相关的源码时,可以按照以下阶段的顺序进行学习和理解,以便更好地掌握Lucene的数据写入过程。同时,也需要了解一些相关的类和方

    2024年02月09日
    浏览(12)
  • lucene、solr、es的区别以及应用场景

    Lucene、Solr 和 Elasticsearch(ES) 都是基于 Lucene 引擎的搜索引擎,它们之间有相似之处,但也有一些不同之处。 Lucene 是一个低级别的搜索引擎库,它提供了一种用于创建和维护全文索引的 API,以及一些搜索和排序算法。Lucene 主要用于构建自定义搜索引擎,例如在 Java 应用程序中

    2024年02月15日
    浏览(11)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包