首页 > 其他分享 >高并发处理的思路和方法

高并发处理的思路和方法

时间:2023-07-09 18:23:49浏览次数:23  
标签:缓存 处理 数据库 系统 查询 并发 MQ 思路

高并发处理的思路和手段

处理高并发的六种方法

1:系统拆分,将一个系统拆分为多个子系统,用dubbo来搞。然后每个系统连一个数据库,这样本来就一个库,现在多个数据库,这样就可以抗高并发。

2:缓存,必须得用缓存。大部分的高并发场景,都是读多写少,那你完全可以在数据库和缓存里都写一份,然后读的时候大量走缓存不就得了。毕竟人家redis轻轻松松单机几万的并发啊。没问题的。所以你可以考的虑考虑你的项目里,那些承载主要请求读场景,怎么用缓存来抗高并发。

3:MQ(消息队列),必须得用MQ。可能你还是会出现高并发写的场景,比如说一个业务操作里要频繁搞数据库几十次,增删改增删改,疯了。那高并发绝对搞挂你的系统,人家是缓存你要是用redis来承载写那肯定不行,数据随时就被LRU(淘汰掉最不经常使用的)了,数据格式还无比简单,没有事务支持。所以该用mysql还得用mysql啊。那你咋办?用MQ吧,大量的写请求灌入MQ里,排队慢慢玩儿,后边系统消费后慢慢写,控制在mysql承载范围之内。所以你得考虑考虑你的项目里,那些承载复杂写业务逻辑的场景里,如何用MQ来异步写,提升并发性。MQ单机抗几万并发也是ok的。

4:分库分表,可能到了最后数据库层面还是免不了抗高并发的要求,好吧,那么就将一个数据库拆分为多个库,多个库来抗更高的并发;然后将一个表拆分为多个表,每个表的数据量保持少一点,提高sql跑的性能。

5:读写分离,这个就是说大部分时候数据库可能也是读多写少,没必要所有请求都集中在一个库上吧,可以搞个主从架构,主库写入,从库读取,搞一个读写分离。读流量太多的时候,还可以加更多的从库。

6:solrCloud:
SolrCloud(solr 云)是Solr提供的分布式搜索方案,可以解决海量数据的 分布式全文检索,因为搭建了集群,因此具备高可用的特性,同时对数据进行主从备份,避免了单点故障问题。可以做到数据的快速恢复。并且可以动态的添加新的节点,再对数据进行平衡,可以做到负载均衡:

高并发需知道的吞吐量(TPS)、QPS、并发数、响应时间(RT)几个概念
吞吐量:
每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。一般而言,吞吐量是一个比较通用的指标,两个具有不同用户数和用户使用模式的系统,如果其最大吞吐量基本一致,则可以判断两个系统的处理能力基本一致。

QPS(每秒查询率):
每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。对应fetches/sec,即每秒的响应请求数,也即是最大吞吐能力。

并发数:
并发用户数是指系统可以同时承载的正常使用系统功能的用户的数量。与吞吐量相比,并发用户数是一个更直观但也更笼统的性能指标。实际上,并发用户数是一个非常不准确的指标,因为用户不同的使用模式会导致不同用户在单位时间发出不同数量的请求。

响应时间:
响应时间是指系统对请求作出响应的时间。
————————————————
版权声明:本文为CSDN博主「一位头发未掉完的程序员」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42362022/article/details/124453576

标签:缓存,处理,数据库,系统,查询,并发,MQ,思路
From: https://www.cnblogs.com/clark1990/p/17539099.html

相关文章

  • Django 使用 ImageKit 进行的ImageField 图像处理
     有图像的话,肯定不知保存,需要改变图像的像素,大小等,这就需要第三方的libpipinstall-Udjango-imagekitpipinstall-UPillow settings.py里面,追加imagekit  ,MEDIA_URL,MEDIA_ROOT model.pyfromdjango.dbimportmodelsfromimagekit.modelsimportImageSp......
  • 如何不加锁地将数据并发写入Apache Hudi?
    最近一位Hudi用户询问他们是否可以在不需要任何锁的情况下同时从多个写入端写入单个Hudi表。他们场景是一个不可变的工作负载。一般来说对于任何多写入端功能,Hudi建议启用锁定配置。但这是一个有趣的问题,我们进行探索并找到了解决方案,因此与更广泛的社区分享。需要并发写......
  • rust 自动化测试、迭代器与闭包、智能指针、无畏并发
    编写测试可以让我们的代码在后续迭代过程中不出现功能性缺陷问题;理解迭代器、闭包的函数式编程特性;Box<T>智能指针在堆上存储数据,Rc<T>智能指针开启多所有权模式等;理解并发,如何安全的使用线程,共享数据。自动化测试编写测试以方便我们在后续的迭代过程中,不会改坏代码。保证了程序......
  • jmeter--后置处理器之json提取器介绍和使用
    1、json提取器使用场景jmeter后置处理器中,有三种提取器组件:json提取器、xpath提取器、正则表达式提取器,这三种组件的功能相同,只是分别使用三种不同的方式进行提取数值。一般在使用jmeter来调接口时,B接口的请求参数值是A接口的响应值时,需要通过提取器组件来提取出A接口相应中的......
  • CSAPP-Data Lab 思路记录
    >gcc-O1-Wall-m32-lm-obtestbits.cbtest.cdecl.ctests.c>Infileincludedfrombtest.c:16:0:>/usr/include/stdio.h:27:10:fatalerror:bits/libc-header-start.h:Nosuchfileordirectory>#include<bits/libc-header-start.h>>......
  • JS 处理字符串的时间差 及 比较时间的大小
    <!--JS处理字符串的时间差及比较时间的大小--><html><head><script>(function(){cc();})();functioncc(){vartime1="2012-02-20"vartime2="2015-02-14"vartmpBeginTime=newDate(tim......
  • windows bat批处理执行ctl脚本导入多个文本到oracle
            ......
  • 数据库系统概论—恢复与并发
    数据库概论系统—系统篇一、关系查询处理和查询优化1.1关系数据库的查询处理查询处理可分为四个阶段:查询分析、检查检查、查询优选和查询执行(其中查询优化可分为代数和物理优化)1.2关系数据库系统的查询优化查询优化的优点不仅在于用户不必考虑如何最好地表达查询以获得较高......
  • 阵列信号处理及matlab仿真-------波束形成算法基础知识以及MMSE、MSNR和LCMV的MATLAB
    上一篇《阵列信号处理及MATLAB仿真-----阵列信号绪论》里面说了阵列信号处理研究的四个主要问题:波束形成技术、空间谱估计、信号源定位、信源分离。接下来我们就波束形成来做一个详细的学习。一、波束形成的定义:首先说一下它的物理意义,阵列天线的方向图是全方向的,但是......
  • jmeter: ${__P(THreadCount,)} 。P函数实现命令行变量,改变并发数和执行时间
         /export/apache-jmeter-5.4.1/bin/jmeter.sh-JrunTime300-JTHreadCount10 -n-tpinter_get.jmx-lpinter_test.jtl  ......