后端接口性能优化分析

  • 👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家
  • 📕系列专栏:Spring源码、JUC源码
  • 🔥如果感觉博主的文章还不错的话,请👍三连支持👍一下博主哦
  • 🍂博主正在努力完成2023计划中:源码溯源,一探究竟
  • 📝联系方式:nhs19990716,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬👀

文章目录

事实上,当决定进行这个后端接口分析专栏部分的时候,我是低估了工作量的,因为以我当时的认知,并没有这么多的内容,随着不断地发现新的知识点,不断地调研,不断地总结,最终,一个适合我目前经验的后端接口优化篇幅就完成了。总的来说,当完成了这部分的时候,我总体上对知识有了一个更加全面的了解,将很多的知识融汇贯通了起来,形成了一个体系,这也是我最大的收获!

下面主要以三个思路来介绍,分别是 定位问题&问题排查、常见思路、实际问题解决

定位问题&问题排查

该部分主要介绍如何定位问题,出现问题如何排查的思路,这也是如何发现待优化点的思路。

后端接口性能优化分析-问题发现&问题定义-CSDN博客

常见思路

以15个常见的优化点来展开概括的介绍对应优化点

1.批量思想:

2.异步思想:

3.多线程思想:

4.空间换时间思想:恰当使用缓存

5.预取思想:提前初始化到缓存

6.池化思想:预分配与循环使用

7.事件回调思想:拒绝阻塞等待

8.锁粒度避免过粗

9.切换存储方式:文件中转暂存数据

10.优化程序结构

11.压缩传输内容

12.线程池设计

13.机器问题 (GC、线程打满、太多IO资源没关闭等等)

14.调用链路的优化

15.数据库优化

后端接口性能优化分析-多线程优化-CSDN博客

后端接口性能优化分析-程序结构优化-CSDN博客

后端接口性能优化分析-数据库优化-CSDN博客

实际问题解决(复杂优化问题)

实际问题的优化,是根据真实发生的问题而做的优化,这部分内容主要是参考优秀的技术博客。

也希望大家能够在理解优化的常见思路后能够结合 真实优化问题做到将优化思路融会贯通!

查询接口性能优化实录,讲点新手也能用的 - 掘金 (juejin.cn)

接口优化🚀68474ms->1329ms - 掘金 (juejin.cn)

只改了五行代码接口吞吐量提升了10多倍 - 掘金 (juejin.cn)

接口流量突增,如何做好性能优化? - 掘金 (juejin.cn)

评分接口性能优化 10 倍 - 掘金 (juejin.cn)

文献参考

1\] [细数线程池的10个坑 (qq.com)](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247506583&idx=1&sn=ea77e7d3d7ef8ded514e56c6b907f9d4&source=41#wechat_redirect) \[2\] [实战总结!18种接口优化方案的总结 (qq.com)](https://mp.weixin.qq.com/s?__biz=MzkyMzU5Mzk1NQ==&mid=2247506674&idx=1&sn=8b2914d9aafa334029495b029b69d0b6&source=41#wechat_redirect) \[3\] [看看别人后端API接口性能优化的11个方法,那叫一个优雅! - 掘金 (juejin.cn)](https://juejin.cn/post/7086398532638212127?searchId=2023110620102554D46687D5CAB80BB3A7#heading-16) \[4\] [Java后端服务接口性能优化建议 - 掘金 (juejin.cn)](https://juejin.cn/post/7239908637094821949?searchId=2023110620102554D46687D5CAB80BB3A7#heading-20) \[5\] [慢接口优化思路 - 掘金 (juejin.cn)](https://juejin.cn/post/7200962751400329271?searchId=20231106201421D2FF4295A747021AA0CF#heading-22) \[6\] [聊聊接口优化的几个方法 - 掘金 (juejin.cn)](https://juejin.cn/post/7043423820543164453?searchId=2023110620102554D46687D5CAB80BB3A7#heading-6) \[7\] [浅谈系统性能提升的经验和方法 (qq.com)](https://mp.weixin.qq.com/s/Qk-T2SDJkWH0Ibew3CWz8g) \[8\] [Java接口全链路优化:如何降低接口RT时长 - 掘金 (juejin.cn)](https://juejin.cn/post/6844903682471886862?searchId=20231108102727FCF518A1F2531C8110CD#heading-3) \[9\] [Java线上问题排查系列--后端接口响应慢的排查方法及解决方案_java接口慢排查_IT利刃出鞘的博客-CSDN博客](https://blog.csdn.net/feiying0canglang/article/details/122687089?ops_request_misc=%7B%22request_id%22%3A%22169941076616800225534974%22%2C%22scm%22%3A%2220140713.130102334.pc_all.%22%7D&request_id=169941076616800225534974&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-18-122687089-null-null.142%5Ev96%5Epc_search_result_base6&utm_term=%E5%90%8E%E7%AB%AF%E6%8E%A5%E5%8F%A3%E4%BC%98%E5%8C%96&spm=1018.2226.3001.4187) \[10\] [架构必知:后端服务实战之性能优化_ITFLY8的博客-CSDN博客](https://blog.csdn.net/itfly8/article/details/119550647?ops_request_misc=&request_id=&biz_id=102&utm_term=%E5%90%8E%E7%AB%AF%E6%8E%A5%E5%8F%A3%E4%BC%98%E5%8C%96&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-6-119550647.142%5Ev96%5Epc_search_result_base6&spm=1018.2226.3001.4187) \[11\] [两万字的性能优化指南!39个策略提升接口性能! - 掘金 (juejin.cn)](https://juejin.cn/post/7287420810318299190?searchId=202311081038089A497621078D798C211C#heading-52) \[12\] [看一遍就理解:group by 详解 - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/460005395) \[13\] [(二十二)全解MySQL之分库分表后带来的"副作用"一站式解决方案! - 掘金 (juejin.cn)](https://juejin.cn/post/7168356696975212574?searchId=20231112094029CD98786C5838E14CCAAD#heading-12) \[14\] [分布式事务之可靠消息最终一致性、最大努力通知 - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/457868921?utm_id=0) \[15\] [explain \| 索引优化的这把绝世好剑,你真的会用吗? - 掘金 (juejin.cn)](https://juejin.cn/post/6905232255937937415?searchId=20231111211240AD356234760DFBFEC6E0#heading-5) \[16\] [慢SQL原因分析之索引失效 \| 京东物流技术团队 - 掘金 (juejin.cn)](https://juejin.cn/post/7280787657013739581?searchId=2023111120333211995186698256197059#heading-0) \[17\] [MySQL高级篇------索引失效的11种情况_mysql索引失效的几种情况-CSDN博客](https://blog.csdn.net/qq_40991313/article/details/130779528) \[18\] [还不会使用分布式锁?教你三种分布式锁实现的方式 - 掘金 (juejin.cn)](https://juejin.cn/post/6963451325740744718?searchId=2023111118423894399795DDE88EFE7ACA) \[19\] [聊聊redis分布式锁的8大坑 - 掘金 (juejin.cn)](https://juejin.cn/post/7011503283768393736?searchId=202311111656226FACF8EC715AD0DC3C52#heading-4) \[20\] [一文搞懂 Redis 高性能之 IO 多路复用 - 掘金 (juejin.cn)](https://juejin.cn/post/6996516104960999437?searchId=20231111105630236930E07388FAA72A80) \[21\] [聊聊并发编程的12种业务场景 - 掘金 (juejin.cn)](https://juejin.cn/post/7093321213342121997?searchId=202311041836416FB940A13E90428AE99A#heading-3) \[22\] [异步编程利器:CompletableFuture详解 |Java 开发实战 - 掘金 (juejin.cn)](https://juejin.cn/post/6970558076642394142?searchId=202311100834364E4052E938E2B9E426FA) \[23\] [从消息队列常见问题入手探讨消息队列 - 掘金 (juejin.cn)](https://juejin.cn/post/7176168218866745400?searchId=202311092201431C18DACE4BD8CDA7576A#heading-1) \[24\] [统一观测丨如何使用Prometheus 实现性能压测指标可观测 - 掘金 (juejin.cn)](https://juejin.cn/post/7197977342144217146?searchId=202311140922202AAAEBAFD2332CACB014) \[25\] [Java后端接口响应慢的排查方法及解决方案 - 自学精灵 (skyofit.com)](https://learn.skyofit.com/archives/1235) \[26\] [Java-系统问题排查的方法 - 自学精灵 (skyofit.com)](https://learn.skyofit.com/archives/1237)

相关推荐
咖啡教室4 小时前
java日常开发笔记和开发问题记录
java
咖啡教室4 小时前
java练习项目记录笔记
java
鱼樱前端5 小时前
maven的基础安装和使用--mac/window版本
java·后端
RainbowSea5 小时前
6. RabbitMQ 死信队列的详细操作编写
java·消息队列·rabbitmq
RainbowSea5 小时前
5. RabbitMQ 消息队列中 Exchanges(交换机) 的详细说明
java·消息队列·rabbitmq
得物技术6 小时前
得物 iOS 启动优化之 Building Closure
ios·性能优化
李少兄7 小时前
Unirest:优雅的Java HTTP客户端库
java·开发语言·http
此木|西贝7 小时前
【设计模式】原型模式
java·设计模式·原型模式
可乐加.糖7 小时前
一篇关于Netty相关的梳理总结
java·后端·网络协议·netty·信息与通信
s9123601018 小时前
rust 同时处理多个异步任务
java·数据库·rust