后端接口性能优化分析
- 👏作者简介:大家好,我是爱吃芝士的土豆倪,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)
[2] 实战总结!18种接口优化方案的总结 (qq.com)
[3] 看看别人后端API接口性能优化的11个方法,那叫一个优雅! - 掘金 (juejin.cn)
[4] Java后端服务接口性能优化建议 - 掘金 (juejin.cn)
[5] 慢接口优化思路 - 掘金 (juejin.cn)
[6] 聊聊接口优化的几个方法 - 掘金 (juejin.cn)
[7] 浅谈系统性能提升的经验和方法 (qq.com)
[8] Java接口全链路优化:如何降低接口RT时长 - 掘金 (juejin.cn)
[9] Java线上问题排查系列–后端接口响应慢的排查方法及解决方案_java接口慢排查_IT利刃出鞘的博客-CSDN博客
[10] 架构必知:后端服务实战之性能优化_ITFLY8的博客-CSDN博客
[11] 两万字的性能优化指南!39个策略提升接口性能! - 掘金 (juejin.cn)
[12] 看一遍就理解:group by 详解 - 知乎 (zhihu.com)
[13] (二十二)全解MySQL之分库分表后带来的“副作用”一站式解决方案! - 掘金 (juejin.cn)
[14] 分布式事务之可靠消息最终一致性、最大努力通知 - 知乎 (zhihu.com)
[15] explain | 索引优化的这把绝世好剑,你真的会用吗? - 掘金 (juejin.cn)
[16] 慢SQL原因分析之索引失效 | 京东物流技术团队 - 掘金 (juejin.cn)
[17] MySQL高级篇——索引失效的11种情况_mysql索引失效的几种情况-CSDN博客
[18] 还不会使用分布式锁?教你三种分布式锁实现的方式 - 掘金 (juejin.cn)
[19] 聊聊redis分布式锁的8大坑 - 掘金 (juejin.cn)
[20] 一文搞懂 Redis 高性能之 IO 多路复用 - 掘金 (juejin.cn)
[21] 聊聊并发编程的12种业务场景 - 掘金 (juejin.cn)
[22] 异步编程利器:CompletableFuture详解 |Java 开发实战 - 掘金 (juejin.cn)
[23] 从消息队列常见问题入手探讨消息队列 - 掘金 (juejin.cn)
[24] 统一观测丨如何使用Prometheus 实现性能压测指标可观测 - 掘金 (juejin.cn)
[25] Java后端接口响应慢的排查方法及解决方案 - 自学精灵 (skyofit.com)
[26] Java-系统问题排查的方法 - 自学精灵 (skyofit.com)
相关文章:
后端接口性能优化分析
👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring源码、JUC源码🔥如果感觉博主的文章还不错的话,请👍三连支持&…...
【ceph】ceph集群中使用多路径(Multipath)方法
本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》:python零基础入门学习 《python运维脚本》: python运维脚本实践 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8…...
Xshell+Xftp通过代理的方式访问局域网内网服务器
最近在部署项目时遇到只有1台服务器拥有公网ip,其它服务器只有局域网ip,当然其它服务器可以正常访问网络,例如如下模型。之前访问其它几台服务器,都是先通过登录公网IP服务器,然后在Xshell里面执行ssh远程连接…...
对盒子中的材料进行计数
背景 在做AI算法分析项目的时候,有时候需要我们使用影像分析结合机器学习算法对某些材料盒中的材料进行数目计数,通过自己的分析,给出以下两种解决问题的思路。 1.图像处理方法对材料计数 要使用图像处理方式对盒子中的材料进行数目分析&a…...
科技驱动固定资产管理变革:RFID技术的前沿应用
在当今激烈竞争的商业环境中,企业固定资产管理面临挑战,而RFID技术正以其独特特性和功能性彻底改变资产管理方式。本文将深入探讨RFID技术在固定资产管理中的革命性作用,并解析其应用带来的创新和便利。 RFID技术概述: RFID系统作…...
Django路由层之有名分组和无名分组、反向解析、路由分发、伪静态的概念、名称空间、虚拟环境、Django1和Django2的区别
【1】无名分组 无名分组:就是把正则中小括号里噩匹配到的内容以位置参数的形式传递给视图函数 url(r^test/(\d)$,view.text) get请求的第一种方式: http://127.0.0.1:8000/test/?a1&b2 get请求的第二种方式: http://127.0.0.1:8000/test…...
【nlp】2.5 人名分类器实战项目(对比RNN、LSTM、GRU模型)
人名分类器实战项目 0 项目说明1 案例介绍2 案例步骤2.1 导入必备的工具包2.2 数据预处理2.2.1 获取常用的字符数量2.2.2 国家名种类数和个数2.2.3 读数据到python环境中2.2.4 构建数据源NameClassDataset2.2.5 构建迭代器遍历数据2.3 构建RNN及其变体模型2.3.1 构建RNN模型2.3…...
海康Visionmaster-环境配置:MFC 二次开发环境配置方法
1 新建 MFC 工程,拷贝 DLL:VM\VisionMaster4.0.0\Development\V4.0.0 \ComControl\bin\x64 下的所有拷贝到项目工程输出目录下,如下图所示,项目的输出路径是 Dll 文件夹。 2 通过配置 C目录和链接器的方式配置 VM 环境 2.1 C目录下添加附加…...
利用EXCEL中的VBA对同一文件夹下的多个数据文件进行特定提取
Sub CopyFilesBasedOnCriteria()Dim fso As ObjectDim sourceFolder As StringDim destinationFolder As String 设置源文件夹路径和目标文件夹路径sourceFolder "C:\\test\\全波段模拟_Nimbostratus cloud - 副本"destinationFolder "C:\\Desktop\\MOD02数据…...
FPGA时序约束(七)文献时序约束实验测试
系列文章目录 文章目录 系列文章目录前言文献1:时钟移位LogiclockDesign Partition封装用户编写的程序停掉singletap抓取单端口RAM的数据文献2:SRAM约束前言 之前学习了一些基本时序约束的类别,包括主时钟约束、虚拟时钟约束、输入输出约束、多周期约束等等,但大多都是纸上…...
【数据库开发】DataX开发环境的安装部署(Python、Java)
文章目录 1、简介1.1 DataX简介1.2 DataX功能1.3 支持的数据通道 2、DataX安装配置2.1 DataX2.2 Java2.3 Python 3、DataX Web安装配置3.1 mysql3.2 DataX Web3.2.1 简介3.2.2 架构图3.2.3 依赖环境3.2.4 安装 4、入门使用4.1 DataX自带打印示例测试4.2 DataX生成任务模板文件4…...
Flutter实践一:package组织
1.架构概览 为了降低Flutter工程里lib的复杂度,应尽量拆分一些代码成为独立的package。如图: 我们将通用的组件、领域模型、API、features、存储、repository等抽取成了单独的package。这时lib只剩下多国语言、基本的页面、路由等代码了: 这…...
SpringCloud微服务:Ribbon负载均衡
目录 负载均衡策略: 负载均衡的两种方式: 饥饿加载 1. Ribbon负载均衡规则 规则接口是IRule 默认实现是ZoneAvoidanceRule,根据zone选择服务列表,然后轮询 2.负载均衡自定义方式 代码方式:配置灵活,但修…...
【教程】大气化学在线耦合模式WRF/Chem
查看原文>>>区域气象-大气化学在线耦合模式(WRF/Chem)在大气环境领域实践 随着我国经济快速发展,我国面临着日益严重的大气污染问题。近年来,严重的大气污染问题已经明显影响国计民生,引起政府、学界和人们越…...
GDS 命令的使用 srvctl service TAF application continuity
文档中prim and stdy在同一台机器上,不同机器需要添加address list TAF ENABLED GLOBAL SERVICE in GDS ENVIRONMNET 12C. (Doc ID 2283193.1)编辑To Bottom In this Document Goal Solution APPLIES TO: Oracle Database - Enterprise Edition - Version 12.1.…...
go 语言之 select
在 Go 语言中,select 是一种用于处理多个通道操作的控制结构。它可以用于在多个通道之间进行非阻塞的选择操作,从而实现并发控制和通信。 select 语句的基本语法如下: go select { case <-channel1:// 当 channel1 可读时执行的代码 cas…...
23款奔驰GLC260L升级小柏林音响 全新15个扬声器
2023年款奔驰GLC260 GLC300升级小柏林之声 3D音效系统 升级小柏林之声音响之后,全车一共有15个喇叭,1台功放,每一首音乐都能在车内掀起激情的音浪,感受纯粹的音乐享受,低频震撼澎湃,让你的心跳与音乐完美契…...
ssh 免密码登录
ssh 免密码登录 1. 原理 1.1 密码登录的通俗解释 把服务器当作一个凤凰社,每次进社公干都需要拿特别的门票入场,门票便是服务器上的账户密码; 1.2 免密登录 对于凤凰社的高级会员,会在社内存储一张高级会员身份(id_rsa…...
小程序使用腾讯位置插件获取当前位置
1.小程序后台 设置-第三方设置-插件管理-添加插件 2.进入网站 腾讯位置服务 设置对应的额度 mapPickerPlugin(res) {const key ""; //使用在腾讯位置服务申请的keyconst referer "铅锂运营"; //调用插件的app的名称const category "生活服务,娱…...
零基础学Python怎么学习?我来告诉你
对于IT新手来说,零基础学Python的话,之后可选择的职业方向非常多。Python全栈和爬虫一直以来都是市场的最火的就业岗位之一,它们的薪资回报也算是开发岗里面的顶级了。而且随着大数据和人工智能时代的到来,数据处理和人工智能行业…...
Midjourney锐化效果失效真相(2024官方未公开的渲染管线瓶颈解析)
更多请点击: https://intelliparadigm.com 第一章:Midjourney锐化效果失效真相(2024官方未公开的渲染管线瓶颈解析) 自2024年V6.2版本起,大量用户反馈 --stylize 与 --sharp 参数组合下图像边缘锐化效果显著弱化&am…...
Windows10下V-REP教育版安装保姆级教程(附百度网盘资源与避坑点)
Windows10系统V-REP教育版完整安装指南:从下载到实战避坑在机器人仿真和自动化控制领域,V-REP(现更名为CoppeliaSim)作为一款功能强大的跨平台机器人仿真软件,已经成为众多工科学生和研究人员的首选工具。特别是其教育…...
自制极低频电流探头:负电阻补偿原理与低频方波测量实践
1. 项目概述:为极低频电流测量而生在电子测试领域,电流探头是个再常见不过的工具,无论是排查开关电源的纹波,还是分析电机驱动的波形,都离不开它。但如果你尝试用市面上常见的电流探头去观察一个频率低至几赫兹&#x…...
武汉国电华美串联谐振试验装置,现场用着心里有底
在高压试验现场干了这么多年,这位老师傅常说,一台好的串联谐振装置,就是试验人员的胆。面对GIS、大型变压器、超高压电缆这些大电容试品,没有趁手的谐振设备,交流耐压试验根本没法干。16875kVA/225kV这个规格ÿ…...
NanaZip:现代Windows文件压缩问题的终极解决方案
NanaZip:现代Windows文件压缩问题的终极解决方案 【免费下载链接】NanaZip The 7-Zip derivative intended for the modern Windows experience 项目地址: https://gitcode.com/gh_mirrors/na/NanaZip 还在为Windows文件压缩工具界面老旧、功能单一而烦恼吗&…...
操作符从浅入深的讲解
1. 操作符的分类 2. ⼆进制和进制转换 3. 原码、反码、补码 4. 移位操作符 5. 位操作符:&、|、^、~ 6. 单⽬操作符 7. 逗号表达式 8. 下标访问[]、函数调⽤() 9. 结构成员访问操作符 10. 操作符的属性:优先级、结合性 11. 表达式求值1.操作符的分类以…...
遭遇薪酬倒挂后的反向谈判与资产重估策略「蒸汽求职分享」
在 2026 年全球科技大厂与跨国泛金融巨头追求极致人效、频繁进行组织架构重组(Reorg)的买方市场中,一个让无数海外名校留学生在入职两年后心态瞬间崩塌的现象,正在高频发生——“薪酬倒挂(Salary Inversion)…...
Linux 负载均衡的 cache_nice_tries:缓存友好的迁移尝试
简介现如今服务器、嵌入式设备、工控主板普遍采用多核、NUMA 架构 CPU,多进程多线程并发运行模式成为常态。Linux 内核依靠调度域分层负载均衡机制,分散 CPU 运行压力,避免单核心负载过高、其余核心空闲浪费硬件算力。但任务跨核心迁移是一把…...
鼎讯AM-601光纤熔接机:交通通信建设与维护的可靠伙伴
在铁路、高速公路等交通基础设施的智能化建设中,稳定高效的光纤网络是指挥调度、安全监控等核心系统运行的生命线。鼎讯AM-601光纤熔接机,作为一款专为严苛环境设计的六马达便携式熔接设备,正成为保障这些关键通信链路畅通无阻的可靠选择。无…...
第5章 薪资重构——AI时代的程序员价值重估
第5章 薪资重构——AI时代的程序员价值重估 核心问题:AI时代,程序员的薪资会发生怎样的变化?哪些人在涨薪?哪些人在降薪? 5.1 问题定义:薪资分化的真相是什么? 5.1.1 一个令人震惊的数据 2026年第一季度,一个对比让整个技术圈哗然: 同一家公司内部: - 一个AI方向…...
