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

news2024/12/28 4:57:22

提高性能解决高并发

怎么解决高并发

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

  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.coloradmin.cn/o/846822.html

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

相关文章

如何实现网络数据传输

目录 前言 1.理解源IP地址和目的IP地址 2.理解端口号 2.1端口号与进程pid的关系 2.2源端口号和目的端口号 3.协议 3.1TCP协议 3.2认识UDP协议 4.网络字节序 5.socket编程接口 总结 前言 在上一篇文章网络框架中给大家对网络的整体进行了一个宏观的介绍,这…

理解递归方法

递归相关问题 树和二叉树相关的大部分问题二分查找相关问题快速排序、归并排序相关问题所有回溯的问题所有动态规划的问题 本质与特征 本质 本质就是方法的调用,而且是方法自己调用自己。 特征 执行时范围不断缩小,这样才能触底反弹终止(结…

使用MIT Kerberos Ticket Manager在windows下浏览器访问hadoop页面

Author : Spinach | GHB Link : http://blog.csdn.net/bocai8058文章目录 前言准备配置说明安装Firefox浏览器安装MIT Kerberos Ticket Manager客户端配置krb5.ini文件配置MIT Kerberos Ticket Manager客户端配置Firefox浏览器代理参数 访问WebUI 前言 kerberos是一种计算机…

亚马逊关键词下单的作用

在亚马逊上,关键词对于商品的搜索和发现起着非常重要的作用。当卖家在亚马逊上发布商品时,他们可以使用相关的关键词来描述该商品,这些关键词通常是与该商品相关的词汇或短语。 关键词下单的作用如下: 1、商品搜索: 买…

vue3+antd——实现个人中心页面+同步更改头部用户信息——基础积累

之前写过一篇文章关于vue3antd的框架模板,链接如下:http://t.csdn.cn/9dZMS 首先感谢大神提供的后台管理系统的模板,在此基础上改动要简单很多,主要是自己有很多内容不太敢随意改动。。。 直接看【个人中心】页面的效果图&#…

JavaScript事件委托与事件流+牛客例题

事件流: 概念:事件完整执行过程中的流动路径 说明:假设页面里有个div,当触发事件时,会经历两个阶段,分别是捕获阶段、冒泡阶段 简单来说:捕获阶段是 从父到子 冒泡阶段是从子到父 注意&…

TEMU美国儿童文具亚马逊CPC测试标准

美国站儿童文具类上架跨境电商平台美国站或者出口美国需要提交CPC认证,才能进入美国市场,由CPSC 认可的实验室出具的检测报告,确认每件商品均已过检测,符合上述适用要求。但许多亚马逊卖家反映:在亚马逊卖的文具类产品…

哪个思维导图软件好,知道这5个就够了!

思维导图作为一种有效的组织和展示思维的工具,广泛应用于学习、项目管理、创意发展等领域。然而,手工绘制思维导图费时费力,限制了其在快节奏的现代生活中的应用。本文将介绍5款可以一键生成思维导图的软件,它将通过智能化的方式&…

Chrome 谷歌浏览器,自动填充密码,提示需要输入电脑开机密码问题

我们在使用浏览器访问各个网站时,经常会保存密码。在下一次访问时,直接使用保存的密码填充,简单方便。 但是突然有一天(怀疑是谷歌浏览器更新导致的),每次使用密码填充时,都有如下拦截 拦截提…

前端 select 标签如何创建下拉菜单?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 代码示例⭐ 代码讲解⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这个专栏是为那些对Web开发感兴趣、刚刚踏…

PyTorch中ReduceLROnPlateau的学习率调整优化器

PyTorch中ReduceLROnPlateau的学习率调整优化器 作者:安静到无声 个人主页 简介: 在深度学习中,学习率是一个重要的超参数,影响模型的收敛速度和性能。为了自动调整学习率,PyTorch提供了ReduceLROnPlateau优化器&…

Linux IPIP隧道连通两个局域网

拓扑结构 现有两台主机,它们具有两个网口分别接入到不同网络中。 主机A: eth0:处于 10.0.1.2/24 网段eth1: 处于192.168.1.100/24 网段 主机B: eth0:处于10.0.2.3/24 网段eth1: 处于192.168.2…

持续同步的实时备份软件推荐!

什么是实时备份? 实时备份是一种持续数据保护方法,通过缩短自动保存文件的时间间隔,可以备份每个更改的副本,以捕获保存数据的每个版本。 传统备份方式只能将数据还原到备份完成时的状态,如果在故障发生时进行恢复…

收藏!!!一起来学习IGBT基础知识。

1 IGBT是什么? IGBT,绝缘栅双极型晶体管,是由(BJT)双极型三极管和绝缘栅型场效应管(MOS)组成的复合全控型电压驱动式功率半导体器件, 兼有(MOSFET)金氧半场效晶体管的高…

init_pg_dir 的大小及作用

init_pg_dir 的大小 vmlinux.lds.S 中 在vmlinux.lds.S 中,有 init_pg_dir .; . INIT_DIR_SIZE; init_pg_end .;/*include/asm/kernel-pgtable.h*/ #define EARLY_ENTRIES(vstart, vend, shift) \ ((((vend) - 1) >&g…

Zebec Protocol 将进军尼泊尔市场,通过 Zebec Card 推动该地区金融平等

流支付正在成为一种全新的支付形态,Zebec Protocol作为流支付的主要推崇者,正在积极的推动该支付方案向更广泛的应用场景拓展。目前,Zebec Protocol成功的将流支付应用在薪酬支付领域,并通过收购WageLink将其纳入旗下,…

3.7v升压5v4A芯片用什么型号

问:我需要一个能够将3.7V锂电池的电压升压到5V,并且能够提供4A的电流输出的芯片。请问有什么推荐的型号吗? 答:小编为您推荐AH6922B芯片,它具备以下特点来满足您的需求: 1. 输入电压范围适配:…

SAP 计划独立需求屏幕增强(MD61/MD62/MD63)

需求:在计划独立需求界面新增一列自定义字段 效果如下: MD63:显示:(注:客户字段在显示界面不可以编辑) MD61:创建/MD62:修改(注:创建和修改的时候客户字段可…

C语言学习笔记 vscode使用外部console-11

前言 在默认情况下,我们运行C语言程序都是在vscode终端的,在小程序运行时这个是没有问题的,但是当程序变得复杂它就不好用了,这时我们可以将这个终端设置为外部console,这样方便处理更多、更复杂的程序。 步骤 1.点击…

4基础篇:自定义日志

前言 在所有的后端服务中,日志是必不可少的一个关键环节,毕竟日常中我们不可能随时盯着控制台,问题的出现也会有随机性、不可预见性。一旦出现问题,要追踪错误以及解决,需要知道错误发生的原因、时间等细节信息。 之前的需求分析部分,在网关基础代理的服务中,网关作为…