后端接口性能优化分析

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/147080.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux基础知识——docker教程

Linux基础知识——docker教程 文章目录 Linux基础知识——docker教程前置操作镜像(images)容器(container) 前置操作 将当前用户添加到docker用户组:为了避免每次使用docker命令都需要加上sudo权限,可以将当前用户加入安装中自动创建的docke…

十一、统一网关GateWay(搭建网关、过滤器、跨越解决)

目录 一、网关技术的实现 在SpringCloud中网关的实现包括两种: 作用: 二、搭建网关服务 1、新建模块,并添加依赖 2、新建Gateway包,并编写启动类 3、编写yml文件 4、启动服务,并在网页内测试 5、步骤 三、路由断言工厂 …

android PopupWindow设置

记录一个小功能,使用场景,列表项点击弹出 如图: java类代码: public class PopupUtil extends PopupWindow {private Activity context;private View view;private ListView listView;private TextView m_tv_reminderm, m_tv_Wa…

专注于绘画,不受限制!尝试Growly Draw for Mac的快速绘画应用

Growly Draw Mac版是Mac平台上的一款绘画应用,它提供了简单易用的画板页面和多种色彩、画笔工具,让你可以轻松地完成作画。无论你是初学者还是专业人士,都可以在这款应用中找到适合自己的绘画方式。通过使用Growly Draw Mac版,你可…

高防IP是什么?如何隐藏源站IP?如何进行防护?

高防IP是针对互联网服务器遭受大流量的DDoS攻击后导致服务不可用的情况下,推出的付费增值服务。用户在数据不转移的情况下,就可以通过配置高防IP , 将攻击流量引流到高防|P,确保源站的稳定可靠。高防IP采用的技术手段包括DDoS防护、WAF ( Web应用程序防火墙)等,它能够有效抵御来…

机器学习第7天:逻辑回归

文章目录 介绍 概率计算 逻辑回归的损失函数 单个实例的成本函数 整个训练集的成本函数 鸢尾花数据集上的逻辑回归 Softmax回归 Softmax回归数学公式 Softmax回归损失函数 调用代码 参数说明 结语 介绍 作用:使用回归算法进行分类任务 思想:…

现有文章汇总

Cotent 项目开发FreeRTOS/ESP-IDFSTM32C/C 数据结构数据库Python基础Python实例PyQt5/Pyside2 上位机开发FlaskLinux运维树莓派4BCH552ESP32实例计算机网络Javaeclipsemicropython日常问题解决 项目开发 基于树莓派4B的车牌号识别 FreeRTOS/ESP-IDF Ubuntu下ESP-IDF的环境搭…

Lstm+transformer的刀具磨损预测

视频讲解: 基于Lstm+transformer的刀具磨损预测实战_哔哩哔哩_bilibili 结果展示: 数据展示: 主要代码: # pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple/ # pip install optuna -i https://pypi.tuna.tsinghua.edu.cn/simple/ import numpy as np…

Linux服务器挂载另一台服务器的文件夹(mount)

我们实际应用中,会常遇到多个Linux服务器之间需要频繁共享文件,或者是一台服务器需要使用另一台服务器的闲置磁盘空间。最方便的方法就是挂载另一台linux文件夹(文件服务器),通俗理解为:当前服务器远程连接…

深信服AC应用控制技术

拓扑图 目录 拓扑图 一.上班时间不允许使用qq(假设上班时间是上午9到12,下午14到18) 1.新增上班时间不允许使用qq访问权限策略 2.将策略应用到组,例如修仙部 3.验证 上班时间发现登录不了 下班时间可以登录 二.上班时间不允许访问视频网站(假设上班时…

SQLite3 数据库学习(一):数据库和 SQLite 基础

参考引用 SQL 必知必会SQLite 权威指南(第二版)关系型数据库概述 1. 数据库基础 1.1 什么是数据库 数据库(database):保存有组织的数据的容器(通常是一个文件或一组文件) 可以将其想象为一个文…

探索AI交互:Python与ChatGPT的完美结合!

大家好!我是爱摸鱼的小鸿,人生苦短,我用Python!关注我,收看技术干货。 随着人工智能的迅速发展,AI交互正成为技术领域的一大亮点。在这个过程中,Python编程语言和ChatGPT模型的结合展现出强大的…

es的使用方法以及概念

Elasticsearch(简称为ES)是一个开源的搜索引擎,它构建在Lucene搜索引擎之上。它提供了一个分布式、多租户的全文搜索引擎,具有强大的实时分析能力。以下是关于Elasticsearch的一些基本概念和使用方法: 基本概念&#…

idea查看UML类图

idea查看UML类图 一、如何查看UML类图 1.1 选择需要查看的类或者包,鼠标右键,选择Diagrams->Show Diagram 1.2 对于UML类图中的包,选中后点击鼠标右键-> Expand Nodes(展开节点) 展开前 展开后 1.3 展开后分布比较凌乱&#xff…

自动获取ip地址有什么坏处

在当今数字化时代,自动获取IP地址已经成为了日常生活的一部分。自动获取IP地址的方式可以方便地追踪用户位置、提供个性化的服务,甚至能够帮助网站防止恶意攻击。然而,自动获取IP地址也存在一些潜在的坏处,尤其是在数据隐私和法律…

带你快速掌握Linux最常用的命令(图文详解)- 最新版(面试笔试常考)

最常用的Linux指令(图文详解)- 最新版 ls:列出目录中的文件和子目录。(重点)cd:改变当前工作目录。绝对路径:相对路径 pwd:显示当前工作目录的路径。mkdir:创建一个新的目…

教你轻松解决win系统ucrtbased.dll丢失的问题,亲测有效!

ucrtbased.dll是一个动态链接库文件(DLL),它是Windows操作系统中的一部分,主要负责提供操作系统和应用程序所需的函数和接口。这个文件包含了操作系统和应用程序共同使用的通用代码,以确保不同程序之间的兼容性和稳定性…

6.2 List和Set接口

1. List接口 List接口继承自Collection接口,List接口实例中允许存储重复的元素,所有的元素以线性方式进行存储。在程序中可以通过索引访问List接口实例中存储的元素。另外,List接口实例中存储的元素是有序的,即元素的存入顺序和取…

C语言之for while语句详解

C语言之for while语句详解 文章目录 C语言之for while语句详解简介1 while语句1.1while语句的格式1.2 while语句的实践 2 for2.1 for语句格式2.2 for循环的实践 3 do while3.1 do while语句格式3.2 do while循环的实践 3 循环中break和continue3.1 while语句中的break和continu…

编写程序,要求输入x的值,输出y的值。分别用(1)不嵌套的if语句(2)嵌套的if语句(3)if-else语句(4)switch语句。

编写程序,要求输入x的值,输出y的值。分别用(1)不嵌套的if语句(2)嵌套的if语句(3)if-else语句(4)switch语句。 选择结构是编程语言中常用的一种控制结构&…