[Elasticsearch] ES更新问题踩坑记录,直面秋招

这篇具有很好参考价值的文章主要介绍了[Elasticsearch] ES更新问题踩坑记录,直面秋招。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  1. 基本可以定位是在es更新这块出问题了

看对应代码

final TableDocBean docBean = baseSearchService.getById(id);

setValueForBean(afterColumns, docBean);

log.info(“update table data to es: {}”, JSON.toJSONString(docBean));

baseSearchService.update(docBean);

代码先通过表id 获取对应ES文档,然后赋值 执行更新数据操作

这块没有看出什么问题,考虑到两个事件同时执行时间间隔较短,采用了在代码里Thread.sleep(1000) 睡眠下试试,发现两条SQL语句同时执行的基本每次都成功,可以在ES搜索到.

这种操作不免让人觉得ES里执行更新操作,肯定是有延迟的,具体为什么延迟,就需要看下ES的更新原理

更新原理


正在上传…重新上传取消​

ES更新请求先将index-buffer中文档(document)解析完成的segment写到filesystem cache之中,这样避免了比较损耗性能io操作,又可以使document可以被搜索 , 从index-buffer中取数据到filesystem cache中的过程叫做refresh。es默认的refresh间隔时间是1s

ES数据在更新的时候并不是在原来的数据上做修改的, 而是找到该数据的索引Id,把原来的数据删掉,再重新插入一条,但索引id是相同的

当删除、更新两个操作间隔很短时间执行,上一个数据还没有refresh 到 FileSystem Cache区域,就无法查询,final TableDocBean docBean = baseSearchService.getById(id);

获取不到数据,所以会导致数据更新失败

解决方案


修改ES refresh到cache区域间隔时间:

curl -XPUT http://ip:9200/meta_es_data/_settings?pretty -d ’

{

“refresh_interval” : “500ms”

}’

在每次更新操作后,休眠1s:

baseSearchService.update(docBean);

Thread.sleep(1000);

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[Elasticsearch] ES更新问题踩坑记录,直面秋招,2024年程序员学习,elasticsearch,服务器,大数据
[Elasticsearch] ES更新问题踩坑记录,直面秋招,2024年程序员学习,elasticsearch,服务器,大数据
[Elasticsearch] ES更新问题踩坑记录,直面秋招,2024年程序员学习,elasticsearch,服务器,大数据

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
[Elasticsearch] ES更新问题踩坑记录,直面秋招,2024年程序员学习,elasticsearch,服务器,大数据

最后

这份文档从构建一个键值数据库的关键架构入手,不仅带你建立起全局观,还帮你迅速抓住核心主线。除此之外,还会具体讲解数据结构、线程模型、网络框架、持久化、主从同步和切片集群等,帮你搞懂底层原理。相信这对于所有层次的Redis使用者都是一份非常完美的教程了。

[Elasticsearch] ES更新问题踩坑记录,直面秋招,2024年程序员学习,elasticsearch,服务器,大数据

整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~

你的支持,我的动力;祝各位前程似锦,offer不断!!!

s使用者都是一份非常完美的教程了。

[外链图片转存中…(img-VUuZ4jYt-1711160424604)]

整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~

你的支持,我的动力;祝各位前程似锦,offer不断!!!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录文章来源地址https://www.toymoban.com/news/detail-843207.html

到了这里,关于[Elasticsearch] ES更新问题踩坑记录,直面秋招的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【持续更新】C/C++ 踩坑记录(一)

    下面这段代码中 is_valid() 解引用了空指针 str ,我们的直觉是编译运行后将迎来 SIGSEGV,然而事情并非所期望的那样。 结合 GCC 发出的警告,不难推断出条件表达式 *str == 0x80 在编译期被求值且相应的 if 语句被优化掉了,而且这是在 O0 的优化等级下。以下的反汇编结果验证了

    2024年02月16日
    浏览(75)
  • linux部署 ElasticSearch 踩坑记录

    java 环境 :1.8.0-openjdk es版本:   elasticsearch-7.17.3  [1]./elasticsearch-env:行83: /home/es/elasticsearch-7.17.7/jdk/bin/java: 无法执行二进制文件   问题原因: es 的版本与jdk版本不匹配,检查当前es 版本对应的jdk ,然后重新配置环境即可。    查看对应 支持矩阵 | Elastic 解决方案: 升级对

    2024年02月10日
    浏览(44)
  • ES踩坑记录之集群间通信异常造成节点无法加入

    公司新搭了一套ES集群,4台机器,ES版本7.5.0,前期搭建十分顺利,但集群运行一段时间后会出现问题。问题具体体现为节点间通讯异常,集群会重新选主,但选主之后只能通过新的主节点进行集群操作,其他节点无法加入主节点。 通过查询ES的日志,我们发现如下报错: 大

    2024年02月12日
    浏览(48)
  • Elasticsearch安装IK分词器踩坑记录

    在安装ES ik分词器参考如下博文进行安装时报后面的错误提示 https://blog.csdn.net/ZHHX666/article/details/125953385 错误提示: 参考如下博文得已解决: https://blog.csdn.net/Sun_shine95/article/details/126042447 结论: 可能是不同版本目录不同,建议还是使用命令进行安装,不要自己手动建目录。

    2024年01月25日
    浏览(37)
  • SpringBoot中整合ElasticSearch快速入门以及踩坑记录

    若依前后端分离版手把手教你本地搭建环境并运行项目: 若依前后端分离版手把手教你本地搭建环境并运行项目_本地运行若依前后端分离-CSDN博客 参考上面搭建项目。 Elasticsearch 是java开发的,基于 Lucene 的搜索引擎。它提供了一个分布式多用户能力的全文搜索引擎,基于R

    2024年01月17日
    浏览(55)
  • es elasticsearch 新增更新索引,新增更新文档

    先新增索引 新增映射  或者上述两步和为一步(创建索引,及创建mapping) 只能增加原有不存在的字段 创建一个全新的索引,映射包含调整后的字段或类型 将原有索引的数据迁移到新的索引 删除原有索引 将新的索引的别名设置为原来索引相同名称 创建一个 重建文档(全量

    2024年02月11日
    浏览(46)
  • Tensorflow 2 踩坑问题记录

    【问题 1】 TypeError: call() got an unexpected keyword argument \\\'use_causal_mask\\\' 【源代码】 【解决办法】 参考: TypeError: call() got an unexpected keyword argument \\\'use_causal_mask\\\' --- 在 flickr8k/flickr30k 数据集上出现这个错误 我刚开始配置的环境是 Tensorflow-gpu 2.6.0,但 tf.keras.layers.MultiHeadAttention 的参数

    2024年02月02日
    浏览(38)
  • es elasticsearch kibana 根据 id 只更新部分字段

    官方文档: https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-update.html#_update_part_of_a_document 给自己记录一下: 其中 test 是索引名,需要根据实际情况替换。_update 是固定值,表示更新文档。1 是想要更新文档的主键,根据实际情况替换。 “doc” 是固定值,“my_field_name” 是被

    2024年02月13日
    浏览(44)
  • 【ElasticSearch】更新es索引生命周期策略,策略何时对索引生效

    大家好,我是好学的小师弟,今天和大家讨论下更新es索引生命周期策略后,策略何时对索引生效 结论: 若当前索引已应用策略A(旧),更新完策略A后,新的策略A会立即对原来的已经应用该策略的索引生效;若当前索引符合新策略A的生命周期变化条件,则会自动进入下一阶段

    2024年02月07日
    浏览(46)
  • HTTP请求头大小写问题踩坑记录

    类似网关的需求做请求转发,大概是接收到客户端http请求后做简单处理,之后通过httpclient转发出去,其中请求头需要全部透传过去。但是直接全部无脑传过去会出现问题,比如因为处理过请求,所以长度已经变了,客户端的请求头content-length已经不再适用了,再比如如果客户

    2024年02月11日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包