首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

线上问题排查——接口长时间未响应

编程知识
2024年08月20日 08:53

刚看到鱼皮的文章,一下午连续故障两次,谁把我们接口堵死了?!,想起之前刚进公司时遇到了一个类似问题

线上接口访问不通,超时等待,但是看后台日志是正常运行的,进服务器看监控,CPU 占用100%,经典面试题了
使用jsp -ljstack <进程PID> > stack.txt,保存案发现场,立马就发现问题

大量的线程在等待本地方法执行完成,经过了解

  1. 这是一段 C 语言编写的 RSA 加密算法,由于Java RSA 加密出来的数据 与 嵌入式解密数据不一致,因此加解密统一采用 C,使用本地方法调用
  2. 嵌入式通过蓝牙透传到后端,再透传到这个加密算法中,加密后将加密串传回给嵌入式比对数据
  3. 每次调用该方法,CPU 飙升至 20%,当前 CPU 几乎达到 100%,并且算法中不存在死锁问题
  4. 工厂短时间内高频调用该方法

综上,这是由于短时间内频繁调用计算密集型逻辑,CPU 计算、调度不过来导致的,需要在入口做限流措施,并且前端在连续调用时等待
一文看懂流量控制
一文了解限流策略的原理与实现

由于老板催的比较紧,并且所在项目是单体,并发量并不高,也没有接入 Redis,可容忍接口响应时间稍长,直接使用对象锁实现,还可以使用 AtomicInteger 做限制

ps:后续考虑编写网关项目,对入口流量统一控制

这是一段防爬代码块,我不介意文章被爬取,但请注明出处
console.log("作者主页:https://www.cnblogs.com/Go-Solo");
console.log("原文地址:https://www.cnblogs.com/Go-Solo/p/18368790");
From:https://www.cnblogs.com/Go-Solo/p/18368790
本文地址: http://www.shuzixingkong.net/article/1255
0评论
提交 加载更多评论
其他文章 使用CyFES对配体运动轨迹进行数据透视
分子动力学模拟是一个以时间换空间的方法,那么在时间尺度上留下轨迹之后,如何把轨迹做一个静态的展现,正是数据透视所解决的问题。CyFES是一个开源的、基于GPU硬件加速的数据透视高性能计算工具,我们通过一个蛋白-配体相互作用的运动轨迹的示例,演示一下CyFES的基本使用方法。
使用CyFES对配体运动轨迹进行数据透视 使用CyFES对配体运动轨迹进行数据透视 使用CyFES对配体运动轨迹进行数据透视
DMS:直接可微的网络搜索方法,最快仅需单卡10分钟 | ICML 2024
Differentiable Model Scaling(DMS)以直接、完全可微的方式对宽度和深度进行建模,是一种高效且多功能的模型缩放方法。与先前的NAS方法相比具有三个优点:1)DMS在搜索方面效率高,易于使用。2)DMS实现了高性能,可与SOTA NAS方法相媲美。3)DMS是通用的,与各种
DMS:直接可微的网络搜索方法,最快仅需单卡10分钟 | ICML 2024 DMS:直接可微的网络搜索方法,最快仅需单卡10分钟 | ICML 2024 DMS:直接可微的网络搜索方法,最快仅需单卡10分钟 | ICML 2024
方法的三种调用形式
在《可以调用Null的实例方法吗?》一文中,我谈到.NET方法的三种调用形式,现在我们就来着重聊聊这个话题。具体来说,这里所谓的三种方法调用形式对应着三种IL指令:Call、CallVirt和Calli。一、三个方法调用指令 二、三种方法调用形式 三、虚方法的分发(virtual dispatch)
方法的三种调用形式 方法的三种调用形式 方法的三种调用形式
Antd-React-TreeSelect前端搜索过滤
Antd-React-TreeSelect前端搜索过滤,antd本事是带有搜索的功能,但是在开发过程中发现自带的搜索功能与我们要使用的搜索过滤还是差了好多,在一些时候搜索为了迎合需要不得不这么操作,那么该操作结合了antd官方的搜索操作,因而在看了网上的一些操作后还是与需求不符合,最后实在没有解决办
Antd-React-TreeSelect前端搜索过滤 Antd-React-TreeSelect前端搜索过滤 Antd-React-TreeSelect前端搜索过滤
RISC-V全志D1多媒体套件文章汇总
提示 此开发板的任何问题都可以在我们的论坛交流讨论&#160;https://forums.100ask.net/c/aw/d1/57 文章目录汇总 教程共计14章,下面是章节汇总: 第0章_RISC-V全志D1多媒体套件 第1章_快速启动 1_1 快速开始使用 1_2 学习路线 第2章_安装并配置
manim边学边做--圆弧形
圆弧形可以算是一种特殊的圆形,它是圆形的一部分。manim中,单独为圆弧形状封装了几个模块: Arc:通用的圆弧,根据半径和角度来绘制圆弧 ArcBetweenPoints:根据两个点和角度来绘制圆弧 AnnularSector:环形圆弧,相当于是圆环的一部分 Sector:扇形,始终是1/4个圆环
manim边学边做--圆弧形 manim边学边做--圆弧形 manim边学边做--圆弧形
深入分析与解决方案:缓存与数据库双写不一致问题
总之,在选择是否使用缓存及其设计时,需要根据业务场景和数据一致性要求进行权衡。缓存应主要用于提升读操作性能,而对于写多读多且对一致性要求高的场景,可能需要依赖数据库本身的能力或采用其他策略来处理数据的一致性问题。
深入分析与解决方案:缓存与数据库双写不一致问题 深入分析与解决方案:缓存与数据库双写不一致问题 深入分析与解决方案:缓存与数据库双写不一致问题
Docker 容器中镜像导出/导入
目录【容器】镜像导出/导入导出导入带标签不带标签,后期修改【仓库】镜像导出/导入导出导入导入(完整命令) 创建一个简单的Docker镜像 利用docker ps -a命令查看要导出的镜像。 【容器】镜像导出/导入 导出 查看要导出的镜像 [root@localhost ~]# docker ps -
Docker 容器中镜像导出/导入 Docker 容器中镜像导出/导入 Docker 容器中镜像导出/导入