ES限流导致ES数据更新不及时问题

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

目录

一、事故经过

二、事故原因

 三、问题总结

四、后续处理方案


一、事故经过

12月8日早上8点左右 发现系统不停报错,报错信息如下:

amnOkN_kRXGMwU3qmULUxA, primary term: 1 on EsThreadPoolExecutor[name = node10.18.47.130-data/write,
queue capacity = 200,
org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor@e4f2d50[Running, pool size = 48, active threads = 48, queued tasks = 216, completed tasks = 1718542875]]"},"status":429}
at org.elasticsearch.client.RestClient.convertResponse(RestClient.java:260)
at org.elasticsearch.client.RestClient.performRequest(RestClient.java:238)
at org.elasticsearch.client.RestClient.performRequest(RestClient.java:212)
at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1433)
... 99 common frames omitted

经过与排查与沟通,发现是ES发生了限流,导致ES集群出现部分不可写的情况。

8点40左右,把MQ堆积的数据,全部都不写入到ES,重启ES集群

10点左右,ES集群恢复正常功能

二、事故原因

经过排查,是由于12月8日凌晨4点左右,大数据大批量同步数据到lsrm系统,lsrm系统同步供应商信息到MDM,导致某一时刻,数据量达到6G,ES触发了限流,部分不可写,从而导致MDM的ES数据不能及时更新

解决 es 更新存在延迟,开发日常问题,elasticsearch,大数据

 三、问题总结

目前DC高可用方案,针对的是整个ES集群宕机的情况,不能覆盖ES集群可读,部分不可写的情况。

针对这种情况,在写入ES时,做限流操作,限制写入ES的流量,保证ES操作的正常,事后可以通过刷数据的方式,保证数据的最终一致性。

四、后续处理方案

1、写入时,熔断限流,保证ES运行正常,不影响其他数据的写入

2、发生熔断限流时,产生告警,及时通知对应的人员。文章来源地址https://www.toymoban.com/news/detail-601569.html

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

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

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

相关文章

  • 解决ES只能查询10000条数据的问题

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

    2024年02月12日
    浏览(33)
  • ES常见问题(1)-解决ElasticSearch每次只能返回10条数据

    使用ElasticSearch查询分页数据 有时候,我们需要使用ElasticSearch来分词查询,并分页返回指定的数据条数,但是当我们每次想得到分页数据条数超过十条的时候,ElasticSearch总是只能返回十条 因为ElasticSearch为了查询的速度,在默认的情况下已经设置了分页数据只能返回10条,所

    2024年02月11日
    浏览(43)
  • ES中同时使用should和must导致只有must生效解决方案

    背景:es嵌套查询,条件a等于某一个值且条件b等于某两个值甚至更多。 第一步:单独条件b采用 should 匹配多个值,可以查到预期的结果,代码如下: 第二步:单独条件a采用must匹配单个值,也可以查到预期的结果,代码如下: 第三步:合并起来查询,a和b条件同时启用,代

    2024年02月15日
    浏览(32)
  • es. ignore_above属性限制导致数据查询不到

    在ElasticSearch中keyword,text类型字段ignore_above属性(动态映射默认是256) ,表示最大的字段值长度,超出这个长度的字段将不会被索引,查询不到,但是会存储。 解决方法1: 通过es api修改mapping 解决方式2: 创建索引前,创建动态模版 解决方式3: 创建索引时,代码指定mapping

    2024年02月12日
    浏览(39)
  • 简单讲讲ES在大数据规模下的性能问题与解决方案(一)

            众所周知,在处理大规模数据量的时候,我们的传统关系型数据库,例如MySQL,Oracle等...它们对于这些大规模数据的处理与计算是非常吃力的,甚至于在内存资源不足的情况下导致在mysql中查询数据失败的情况,甚至由于数据的规模较大,会消耗更多的磁盘空间,得不

    2024年02月04日
    浏览(45)
  • Es 通过javaApi上传数据Long类型丢失精度的问题一次性解决

    通过 updateRequest.docAsUpsert(true) true 表示无匹配_id是插入数据,false 表示无匹配_id会抛出异常

    2024年02月15日
    浏览(56)
  • [Elasticsearch] ES更新问题踩坑记录,直面秋招

    基本可以定位是在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文档,然后赋值 执行更新数据操作 这块

    2024年03月25日
    浏览(52)
  • 数据库➡ES,数据更新同步

            mysql5.7(自己部署),elasticsearch:7.4.2(自己部署),centos7.0(虚拟环境),python3.8(自己部署),pycharm(自己安装);--建议可用docker部署mysql和es         ①、mysql数据,estable表字段(ID--unique,VALUE--str is json format)唯一ID,json格式的字符串,(表中存的为需要更新

    2024年01月17日
    浏览(44)
  • ES分词字典更新查询不到数据

    存储于es的文档数据将会被分词存储 例如: 当我们通过ik远程扩展词库增加自定义字典 : “ 词的 ”; 已经存在的数据将不会重新分词,例如上面案例中, 已经存在的数据,就不能通过新增的字典 “词的” 查询到 “分词的句子” 这条数据 利用如下命令刷新索引即可 Java

    2024年02月14日
    浏览(33)
  • Hadoop内hive之间,hive与DB、ES等之间数据交互的问题与解决方案

    之前做大数据处理,经常遇到各种问题。很多时候是项目作业简单项配置问题,也可能是导入导出参数配置的问题,也可能是公司Hadoop平台的问题。那么如何排查问题,解决问题?这种事情,除了自己要积累一些大数据的知识和技能外,也需要一些获得一些排查问题的技巧、

    2024年02月01日
    浏览(48)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包