首页 > 极客资料 博客日记
线上问题排查——接口长时间未响应
2024-08-20 10:00:03极客资料围观28次
这篇文章介绍了线上问题排查——接口长时间未响应,分享给大家做个参考,收藏极客之家收获更多编程知识
刚看到鱼皮的文章,一下午连续故障两次,谁把我们接口堵死了?!,想起之前刚进公司时遇到了一个类似问题
线上接口访问不通,超时等待,但是看后台日志是正常运行的,进服务器看监控,CPU 占用100%,经典面试题了
使用jsp -l
和 jstack <进程PID> > stack.txt
,保存案发现场,立马就发现问题
大量的线程在等待本地方法执行完成,经过了解
- 这是一段 C 语言编写的 RSA 加密算法,由于Java RSA 加密出来的数据 与 嵌入式解密数据不一致,因此加解密统一采用 C,使用本地方法调用
- 嵌入式通过蓝牙透传到后端,再透传到这个加密算法中,加密后将加密串传回给嵌入式比对数据
- 每次调用该方法,CPU 飙升至 20%,当前 CPU 几乎达到 100%,并且算法中不存在死锁问题
- 工厂短时间内高频调用该方法
综上,这是由于短时间内频繁调用计算密集型逻辑,CPU 计算、调度不过来导致的,需要在入口做限流措施,并且前端在连续调用时等待
一文看懂流量控制
一文了解限流策略的原理与实现
由于老板催的比较紧,并且所在项目是单体,并发量并不高,也没有接入 Redis,可容忍接口响应时间稍长,直接使用对象锁实现,还可以使用 AtomicInteger 做限制
ps:后续考虑编写网关项目,对入口流量统一控制
这是一段防爬代码块,我不介意文章被爬取,但请注明出处
console.log("作者主页:https://www.cnblogs.com/Go-Solo");
console.log("原文地址:https://www.cnblogs.com/Go-Solo/p/18368790");
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- Nuxt.js 应用中的 prerender:routes 事件钩子详解
- 【问题解决】Tomcat由低于8版本升级到高版本使用Tomcat自带连接池报错无法找到表空间的问题
- 【FAQ】HarmonyOS SDK 闭源开放能力 —Vision Kit
- 六、Spring Boot集成Spring Security之前后分离认证流程最佳方案
- 《JVM第7课》堆区
- .NET 8 高性能跨平台图像处理库 ImageSharp
- 还在为慢速数据传输苦恼?Linux 零拷贝技术来帮你!
- 刚毕业,去做边缘业务,还有救吗?
- 如何避免 HttpClient 丢失请求头:通过 HttpRequestMessage 解决并优化
- 让性能提升56%的Vue3.5响应式重构之“版本计数”