【怎么提高性能和解决高并发】

提高性能解决高并发

怎么解决高并发

解决高并发的整体流程大概是:

  1. 先进行性能评估、
  2. 再进行性能测试、
  3. 然后找到程序可以承受的临界点、最后针对出问题的地方,进行优化。
  4. 当然硬件设置对高并发的影响也很重要,如果达到硬件天花板,那么再怎么优化程序都是没有用的。

一:压力测试

  1. 会找一个时间对项目进行压测,直到压崩,找到系统最高承受压力的临界点。
  2. 整个过程产品、测试、开发、运维需要全程盯着。
  3. 每个开发都盯着自己的接口,具体分析吞吐量和响应时间。
  4. 找到系统的短板,进行优化。
  5. 最后针对每个接口做限制,设置最多可以支持多少人同时访问,多余的用户则排队等候。

二:降低峰值带宽

减少单次请求的数据量,按需拿取数据。即先加载首屏数据条数,根据用户手势滑动行为,预加载后面数据。

三:负载均衡

把任务拆分到多个单元进行执行,共同完成工作任务。
拿今日头条作为例子分析:

  1. 可以把评论、文章、用户信息、视频分别写一个管理系统,单独进行管理。
  2. 像后续添加的放映厅和西瓜视频这个模块,也单独开发一个系统,其中需要的文章、视频,用户信息这一块从对应的系统调接口获取信息。
  3. 像一个经常要用到的接口,比如获取用户信息这个接口,可以单独封装到一个服务里面,每次都从这个服务调接口。
  4. 每一个模块都在k8s上建立多个结点,分摊访问压力。

四:缓存的使用

  1. 前端可以把后续经常用到的信息临时保存下,等到用户下次访问时,不需要再调接口。
  2. 把经常需要显示的信息,存到redis中。调接口时,先查询redis中的值,如果redis中没有,再查库,然后将对应信息给存到redis上。
  3. 像点赞量、访问量这种经常需要计算的数据。如果有大数据相关人员,则大数据负责提供。如果没有可以写个定时任务,每隔五分钟计算一下,存到数据库中,需要信息时,直接查库就行。
  4. 图片、视频、一些静态资源和大文件,都先存到cdn中,可以极大的加快访问速度,节省服务器带宽。(这一块是运维组负责的,具体的我不太了解,可百度cdn缓存进行学习)

五:数据库

读写分离、分库分表

六:接口提高性能

  1. for循环和if判断最多不超多三层。

  2. 查询接口,就只做查询,不要牵扯其他操作。

  3. 需要大量显示的信息,接口设计输入参数为list集合,查询也用这种方式进行查询,效率比较快。
    列表查询示例

  4. 代码避免重复计算。

  5. 避免频繁创建对象,及时释放不再使用的对象。

七:分布式可以用来解决高并发吗

分布式可以用来解决高并发。所谓分布式就是把整个项目拆分成微服务,然后按需进行扩容。

八:SpringCloud Dubbo Redis Cluster ES这些是怎么解决高并发的

SpringCloud: 把服务按模块拆分开,按照每个模块评估性能,按需扩容。
Dubbo: 把服务按模块拆分开,按照每个模块评估性能,按需扩容。
Elastic Search: 简单来说,就是把数据库的数据放到内存里,

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

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

相关文章

java gc分析

使用工具转换:https://ctbots.com/#/ 通用GC分析 jstat -gc -t pid堆内存分析 jstat -gccapacity -t pid年轻代GC分析 jstat -gcnew -t pid年轻代内存分析 jstat -gcnewcapacity -t pid老年代GC分析 jstat -gcold -t pid老年代内存分析 jstat -gcoldcapacity…

Ubuntu18.04 安装opencv 4.8.0教程(亲测可用)

1. 安装准备 安装前需要下载一些必须的依赖项。 不同版本opencv依赖会有不同,具体见官网opencv安装 sudo apt-get install build-essential sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-…

AI大模型之花,绽放在鸿蒙沃土

随着生成式AI日益火爆,大语言模型能力引发了越来越多对于智慧语音助手的期待。 我们相信,AI大模型能力加持下的智慧语音助手一定会很快落地,这个预判不仅来自对AI大模型的观察,更来自对鸿蒙的了解。鸿蒙一定会很快升级大模型能力&…

拥抱创新:用Kotlin开发高效Android应用

拥抱创新:用Kotlin开发高效Android应用 引言 在当今数字时代,移动应用已经成为人们生活中不可或缺的一部分。无论是社交媒体、电子商务还是健康管理,移动应用已经深刻地影响了我们的生活方式。随着移动设备的普及和功能的增强,A…

Android getDrawable()和getColor()

Android getDrawable() 1.过时代码 虽然过时,但是不妨碍使用 context.getResources().getDrawable(R.drawable.xxx) 2.建议代码 context.getDrawable(R.drawable.xxx) 有API限制 3.最新代码 ContextCompat.getDrawable(getContext(), R.drawable.xxx); 有A…

安达发|模具制造业对APS软件需求大幅增长

近年来,中国模具工业以每年15%左右的增速速度快速发展。然而,对于大型、精密、复杂及长寿命模具的需求增长将远超过每年15%的增幅。为应对这一挑战,模具制造业对APS软件的需求大幅度增长,助力行业提速发展。 据统计,中…

linuxARM裸机学习笔记(3)----主频和时钟配置实验

引言:本文主要学习当前linux该如何去配置时钟频率,这也是重中之重。 系统时钟来源: 32.768KHz 晶振是 I.MX6U 的 RTC 时钟源, 24MHz 晶振是 I.MX6U 内核 和其它外设的时钟源 1. 7路PLL时钟源【都是从24MHZ的晶振PLL而来…

一个3年Android的找工作记录

作者:Petterp 这是我最近 1个月 的找工作记录,希望这些经历对你会有所帮助。 有时机会就像一阵风,如果没有握住,那下一阵风什么时候吹来,往往是个运气问题。 写在开始 先说背景: 自考本,3年经验&#xff0…

回归预测 | MATLAB实现SO-CNN-LSTM蛇群算法优化卷积长短期记忆神经网络多输入单输出回归预测

回归预测 | MATLAB实现SO-CNN-LSTM蛇群算法优化卷积长短期记忆神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现SO-CNN-LSTM蛇群算法优化卷积长短期记忆神经网络多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLAB实现SO-CNN-LS…

ASP.NET Core学习路线图

说明 1. 先决条件 - [C#](https://www.pluralsight.com/paths/csharp) - [Entity Framework](https://www.pluralsight.com/search?qentity%20framework%20core) - [ASP.NET Core](https://www.pluralsight.com/search?qasp.net%20core) - SQL基础知识 2. 通用开发技能 -…

uni-app:实现分页功能,单击行获取此行指定数据,更改行样式

效果&#xff1a; 分段解析代码 分页功能实现&#xff1a; 一、标签 1、搜索栏-模糊查询 <!-- 搜索框--><form action"" submit"search_wip_name"><view class"search_position"><view class"search"><…

SpringBoot项目中的web安全防护

最近这个月公司对项目进行了几次安全性扫描&#xff0c;然后扫描出来了一些安全漏洞&#xff0c;所以最近也一直在修复各种安全漏洞&#xff0c;还有就是最近在备考软考高级系统架构设计师&#xff0c;也刚好复习到了网络安全这一个章节&#xff0c;顺便将最近修复的安全漏洞总…

Debian/Ubuntu 安装 Chrome 和 Chrome Driver 并使用 selenium 自动化测试

截至目前&#xff0c;Chrome 仍是最好用的浏览器&#xff0c;没有之一。Chrome 不仅是日常使用的利器&#xff0c;通过 Chrome Driver 驱动和 selenium 等工具包&#xff0c;在执行自动任务中也是一绝。相信大家对 selenium 在 Windows 的配置使用已经有所了解了&#xff0c;下…

Jmeter 压测工具使用手册[详细]

1. jemter 简介 jmeter 是 apache 公司基于 java 开发的一款开源压力测试工具&#xff0c;体积小&#xff0c;功能全&#xff0c;使用方便&#xff0c;是一个比较轻量级的测试工具&#xff0c;使用起来非常简 单。因为 jmeter 是 java 开发的&#xff0c;所以运行的时候必须先…

在 3ds Max 中使用相机映射将静止图像转换为实时素材

推荐&#xff1a; NSDT场景编辑器 助你快速搭建可二次开发的3D应用场景 1. 在 Photoshop 中准备图像 步骤 1 这是我将在教程中使用的静止图像。 这是我的静态相机纸箱的快照。 静止图像 步骤 2 打开 Photoshop。将图像导入 Photoshop。 打开 Photoshop 步骤 3 单击套索工…

windows物理机 上安装centos ,ubuntu,等多个操作系统的要点

一、摘要 一般情况下&#xff0c;我们的笔记本或工作电脑都默认安装windows 分几个区&#xff0c;当下是win7 win8 win 10 win11 等&#xff0c;突然我们有需求需要安装个centos &#xff0c;后面我们应当怎么做&#xff0c;要点是什么&#xff1f;一定要根据网上的贴子一步步来…

Word导出高清PDF

通过word导出pdf清晰度较高的方法_word如何导出高分辨率pdf_Perishell的博客-CSDN博客通过打印机属性设置&#xff0c;让word打印出比较高清的pdf_word如何导出高分辨率pdfhttps://blog.csdn.net/weixin_45390670/article/details/129228568?ops_request_misc%257B%2522reques…

学习笔记|C251|STC32G单片机视频开发教程(冲哥)|第三集:开发环境搭建和程序下载

文章目录 1.STC-ISP软件的下载2.STC32手册下载3.PDF阅读器下载4.学会PDF阅读器查阅手册5.跟着手册搭建C251开发环境Tips:如何同时安装Keil的C51、C251和MDK 6.程序包的下载7.第一个工程的编译和下载 原作者/主讲人&#xff1a;冲哥 原始视频地址 1.STC-ISP软件的下载 STC-ISP …

应急响应-主机后门webshell的排查思路(webshell,启动项,隐藏账户,映像劫持,rootkit后门)

0x00 windows主机后门排查思路 针对主机后门windows&#xff0c;linux&#xff0c;在对方植入webshell后&#xff0c;需要立即响应&#xff0c;排查出后门位置&#xff0c;以及排查对外连接&#xff0c;端口使用情况等等 排查对外连接状态&#xff1a; 借助工具&#xff1a;p…

后端进阶之路——浅谈Spring Security用户、角色、权限和访问规则(三)

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★前端炫酷代码分享 ★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ 解决算法&#xff0c;一个专栏就够了★ ★ 架…