记一次线上es慢查询导致的服务不可用
现象
某日线上业务同学反馈订单列表查询页面一直loding,然后提示请求超时,几分钟之后恢复正常
-
接到报障之后,马上根据接口URL,定位到了请求链路,发现是es查询超时,这里我们的业务订单表数据是由几百万的,所以列表查询用的es,
-
根据请求日志拿到查询es 的参数,在es控制台查询,请求响应时间200ms,初步估计不是这条查询导致,
-
在线上搜索同类报错日志,找到了最初报超时的请求记录,4个字段使用统一查询条件的模糊查询,这条查询在es控制台查询时间为6秒左右,询问当时操作的业务同学,是当时复制错误信息,不是正常的搜索请求
{"commodityName":{"wildcard":"*云汉路线业绩目标: 1W/业绩线索:-----------------------------------需求数:10/拜访目标10/ 拜访路径安排:上午:::润锦,潮工作室,锐城凯,源衣坊,下午:::程逸,精盈,鸿逸,徜仕,三通,富顺,悦富。田亮,汉美森服饰。堡伦,————————————末成交访客户:,重磅服饰,荣鑫服饰*","boost":1.0}}},{"wildcard":{"commodityNumbers":{"wildcard":"*云汉路线业绩目标: 1W/业绩线索:-----------------------------------需求数:10/拜访目标10/ 拜访路径安排:上午:::润锦,潮工作室,锐城凯,源衣坊,下午:::程逸,精盈,鸿逸,徜仕,三通,富顺,悦富。田亮,汉美森服饰。堡伦,————————————末成交访客户:,重磅服饰,荣鑫服饰*","boost":1.0}}},{"wildcard":{"commodityCode":{"wildcard":"*云汉路线业绩目标: 1W/业绩线索:-----------------------------------需求数:10/拜访目标10/ 拜访路径安排:上午:::润锦,潮工作室,锐城凯,源衣坊,下午:::程逸,精盈,鸿逸,徜仕,三通,富顺,悦富。田亮,汉美森服饰。堡伦,————————————末成交访客户:,重磅服饰,荣鑫服饰*","boost":1.0}}},{"wildcard":{"parentCommodityCode":{"wildcard":"*云汉路线业绩目标: 1W/业绩线索:-----------------------------------需求数:10/拜访目标10/ 拜访路径安排:上午:::润锦,潮工作室,锐城凯,源衣坊,下午:::程逸,精盈,鸿逸,徜仕,三通,富顺,悦富。田亮,汉美森服饰。堡伦,————————————末成交访客户:,重磅服饰,荣鑫服饰*","boost":1.0}}},{"term":{"xid":{"value":"云汉路线业绩目标: 1W/业绩线索:-----------------------------------需求数:10/拜访目标10/ 拜访路径安排:上午:::润锦,潮工作室,锐城凯,源衣坊,下午:::程逸,精盈,鸿逸,徜仕,三通,富顺,悦富。田亮,汉美森服饰。堡伦,————————————末成交访客户:,重磅服饰,荣鑫服饰","boost":1.0}}},{"term":{"yid":{"value":"云汉路线业绩目标: 1W/业绩线索:-----------------------------------需求数:10/拜访目标10/ 拜访路径安排:上午:::润锦,潮工作室,锐城凯,源衣坊,下午:::程逸,精盈,鸿逸,徜仕,三通,富顺,悦富。田亮,汉美森服饰。堡伦,————————————末成交访客户:,重磅服饰,荣鑫服饰","boost":1.0}}},{"term":{"sid":{"value":"云汉路线业绩目标: 1W/业绩线索:-----------------------------------需求数:10/拜访目标10/ 拜访路径安排:上午:::润锦,潮工作室,锐城凯,源衣坊,下午:::程逸,精盈,鸿逸,徜仕,三通,富顺,悦富。田亮,汉美森服饰。堡伦,————————————末成交访客户:,重磅服饰,荣鑫服饰","boost":1.0}}},{"term":{"hid":{"value":"云汉路线业绩目标: 1W/业绩线索:-----------------------------------需求数:10/拜访目标10/ 拜访路径安排:上午:::润锦,潮工作室,锐城凯,源衣坊,下午:::程逸,精盈,鸿逸,徜仕,三通,富顺,悦富。田亮,汉美森服饰。堡伦,————————————末成交访客户:,重磅服饰,荣鑫服饰","boost":1.0}
-
通过日志统计,发现该接口当天请求此时在2W次以上,我们是公司业务自用的系统,按道理说不会有这么大的请求量,然后根据请求日志发现了一个很骚的事情,原来的交互设计是每输入一个字,前端就会请求后端去做实时的搜索
-
运维同学根据,保障的时间段,也发现了当时es服务器,cpu和内存使用的飙升
解决
- 前端修改交互方式,去掉实时搜索的处理,
- 后端接口增加拦截,过滤不合逻辑的无效请求
总结
- 查询交互设计不合理,报错的es索引,在es库是一个数据量很大的索引,这病频繁请求会导致cpu和频繁的gc
- 后端接口么有校验,导致用户复制输入错误信息,也会去做查询操作,未做查询条件的过滤
相关文章:

记一次线上es慢查询导致的服务不可用
现象 某日线上业务同学反馈订单列表查询页面一直loding,然后提示请求超时,几分钟之后恢复正常 接到报障之后,马上根据接口URL,定位到了请求链路,发现是es查询超时,这里我们的业务订单表数据是由几百万的&a…...

分布式之ZAB协议
写在前面 假定我们现在使用zk执行了如下的指令: [zk: 192.168.0.10:2181(CONNECTED) 0] create /dongshidaddy 123 Created /dongshidaddy [zk: 192.168.0.10:2181(CONNECTED) 1] create /dongshidaddy/mongo 456 Created /dongshidaddy/mongo假定因为节点故障最终…...
MySQL binlog常用命令及设置清理时间
MySQL binlog常用命令及设置清理时间1 binlog 基本概念2 binlog常用命令3 清理MySQL的binlog日志3.1 自动清理3.2 手动清理文章参考: http://www.360doc.com/content/22/0418/08/65840191_1027038859.shtml https://www.cnblogs.com/kiko2014551511/p/11532426.html…...

Windows下载安装Prometheus
目录 资料 下载 解压 点击prometheus.exe运行 资料 Prometheus是一个开源的系统监控和报警系统,同时也支持多种exporter采集数据,还支持pushgateway进行数据上报,Prometheus性能足够支撑上万台规模的集群。 官网:https://pr…...
0-1背包、完全背包及其变形【零神基础精讲】
来源0x3f:https://space.bilibili.com/206214 三叶姐的对背包问题的总结:【宫水三叶】详解完全背包一维空间优化推导(附背包问题攻略)https://leetcode.cn/circle/discuss/GWpXCM/ 文章目录0-1背包、完全背包及其拓展(…...

OpenStack
OpenStack优势: 1、模块松耦合。 2、组件配置较为灵活。 3、二次开发容易 OpenStack共享服务组件: 1、数据库服务:MongoDB 2、消息列队:RabbitMQ 3、缓存:Redis 4、存储:Ceph 5、负载均衡ÿ…...

Spring Boot整合Kaptcha实现验证码功能
目录一、前言1.Kaptcha 简介2.Kaptcha 详细配置表二、实现1.整合kaptcha,创建kaptcha的工具类1.1 添加依赖1.2 创建KaptchaConfig工具类2 编写接口,在接口中使用 kaptcha 工具类来生成验证码图片(验证码信息)并返回3 登录时从sess…...
【2023】某python语言程序设计跟学第一周内容
本文说明: 案例内容为北理工python语言程序设计课程,如有不妥请联系! 目录温度转换案例:执行结果:代码解析:白话说明:举一反三:根据输入半径求圆周长或面积执行结果:温度…...

C#学习记录——接口的实现
一小部分知识精英依旧直面核心困难,努力地进行深度钻研,生产内容;而大多数信息受众始终在享受轻度学习,消费内容。如果我们真的希望在时代潮流中占据一席之地,那就应该尽早抛弃轻松学习的幻想,锤炼深度学习…...

“ChatGPT之父”Sam Altman:我是如何成功的?
背靠微软,OpenAI能拳打谷歌,脚踢Meta,它背后的男人,必然不简单。 让我们来看一看,Sam Altman是如何一步步成长为今天这个搅动全世界的男人。 山姆奥特曼(Sam Altman) 成长和创业经历 在YC创始…...
jQuery发送Ajax请求的几种方式
概述JQuery发送ajax请求的方法有很多,其中最基本的方法是$.ajax,在其中封装的方法有 $.get, $post等。我们分别举了不同的示例。数据格式首先,浏览器与服务器之间传输数据所采用的格式,比较常见的有json,jsonp…...

Android实现连线题效果
效果图全部正确:有对有错:结果展示,纯黑色:支持图片:实现思路仔细分析可以发现,连线题的布局可以分为两部分,一个是左右两列矩形,另一个是他们之间的连线。每个矩形的宽高都一样&…...

以数据 见未来!首届未来数商大会成功举办
2月25日,2023未来数商大会在杭州未来科技城学术交流中心举办。大会发布了数商产业趋势研究报告,首次提出并探讨了完整的数商产业概念,并成立了未来数商联盟,开通了浙江大数据交易服务平台余杭专区。会上,杭州未来科技城…...

Java数据结构与算法——手撕LRULFU算法
LRU算法 力扣146:https://leetcode-cn.com/problems/lru-cache/ 讲解视频:https://www.bilibili.com/video/BV1Hy4y1B78T?p65&vd_source6f347f8ae76e7f507cf6d661537966e8 LRU是Least Recently Used的缩写,是一种常用的页面置换算法&…...
20230227英语学习
Can Clay Capture Carbon Dioxide? 低碳新思路:粘土也能吸收二氧化碳! The atmospheric level of carbon dioxide — a gas that is great at trapping heat, contributing to climate change — is almost double what it was prior to the Industria…...
校招前端高频react面试题合集
了解redux吗? redux 是一个应用数据流框架,主要解决了组件之间状态共享问题,原理是集中式管理,主要有三个核心方法:action store reduce 工作流程 view 调用store的dispatch 接受action传入的store,reduce…...

k8s node之间是如何通信的?
承接上文同一个node中pod之间如何通信?单一Pod上的容器是怎么共享网络命名空间的?每个node上的pod ip和cni0网桥ip和flannel ip都是在同一个网段10.1.71.x上。cni0网桥会把报文发送flannel这个网络设备上,flannel其实是node上的一个后台进程&…...

System V|共享内存基本通信框架搭建|【超详细的代码解释和注释】
前言 那么这里博主先安利一下一些干货满满的专栏啦! 手撕数据结构https://blog.csdn.net/yu_cblog/category_11490888.html?spm1001.2014.3001.5482这里包含了博主很多的数据结构学习上的总结,每一篇都是超级用心编写的,有兴趣的伙伴们都支…...

魔兽世界WoW注册网站搭建——-Liunx
问题背景哎 搭建了一个魔兽3.35(纯洁版)每当同学朋友要玩的时候我都直接worldserver上面打一个命令随之出现朋友的朋友也要玩想了想还是要有一个网站原本以为吧单机版里面网页的IP数据库改下可以了结果PHP报错了Unknown column sha_pass_hash in field l…...
OSG三维渲染引擎编程学习之六十八:“第六章:OSG场景工作机制” 之 “6.8 OSG内存管理”
目录 第六章 OSG场景工作机制 6.8 OSG内存管理 6.8.1 Referenced类 6.8.2 ref_ptr<>模板类 6.8.3 智能指针...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...

什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...