后端接口性能优化分析

  • 👏作者简介:大家好,我是爱吃芝士的土豆倪,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)

相关推荐
奋进的芋圆17 分钟前
Java 延时任务实现方案详解(适用于 Spring Boot 3)
java·spring boot·redis·rabbitmq
sxlishaobin34 分钟前
设计模式之桥接模式
java·设计模式·桥接模式
model200535 分钟前
alibaba linux3 系统盘网站迁移数据盘
java·服务器·前端
荒诞硬汉1 小时前
JavaBean相关补充
java·开发语言
提笔忘字的帝国1 小时前
【教程】macOS 如何完全卸载 Java 开发环境
java·开发语言·macos
2501_941882481 小时前
从灰度发布到流量切分的互联网工程语法控制与多语言实现实践思路随笔分享
java·开发语言
華勳全栈2 小时前
两天开发完成智能体平台
java·spring·go
alonewolf_992 小时前
Spring MVC重点功能底层源码深度解析
java·spring·mvc
沛沛老爹2 小时前
Java泛型擦除:原理、实践与应对策略
java·开发语言·人工智能·企业开发·发展趋势·技术原理
专注_每天进步一点点2 小时前
【java开发】写接口文档的札记
java·开发语言