作为后端开发,高并发场景是一个绕不过去的坎,今天就来整理下常见的几种思路(暂时不考虑分布式的情况)

一.并发锁

首先我们要知道高并发下会出现某一个时刻流量猛增,还有就是如果是抢购之类的库存类并发可能会导致超卖库存为负数之类的,对于并发锁来说主要是解决抢购超卖问题的,并不能很好的解决流量猛增给服务器带来的压力,有时候甚至会加重服务器的压力,所以我们并发量小及服务器配置比较高的时候可以用并发锁来处理,下面就介绍几种常用的并发锁

1.synchronize(同步排它锁)

这个对于java开发来说肯定不陌生,它可以让各个线程同步执行,缺点是极度的耗费性能,临时处理可以使用,经常使用的情况下不推荐

2.数据库锁

mysql数据库也是自带锁的,这种情况一般用行锁,不过这个会产生事务阻塞数据库,极度耗费性能,且容易造成死锁,一般在内部确定的极低的并发(一般就2个并发)的时候使用

3.redis锁

这个用的比较多,首先redis单进程且性能比较高,而且可以分布式实现,我们一般用set nx px 来实现

二.队列

        当我们的流量达到一定的程度,服务器无法负载了,则就需要进行流量消峰了,这时候我们队列就可以排上用场了,这时候我们我们可以把请求推到队列中,然后及时响应请求,至于并发结果我们可以在另一个页面接口或者发邮件展示,这个个方法的缺点就是不能直接获取到队列请求的结果,不过也算是比较优秀的一种方式了

三.预存队列

        上面我们提到了无法获取到队列请求的结果,有时候需要立刻展示的时候比较麻烦,这时候我们就可以倒转队列的消费者生产者了,先预先在队列中预存一定量的货物,让客户抢单请求来消费客户端的货物,这样就能通过是否从队列中取到货物来直接返回结果了,当前上面的请求都要注意好重复请求,重复下单的情况

高并发场景的几种处理方法相关推荐

  1. 高并发场景下数据库的常见问题及解决方案

    一.分库分表 (1)为什么要分库分表 随着系统访问量的增加,QPS越来越高,数据库磁盘容量不断增加,一般数据库服务器的QPS在800-1200的时候性能最佳,当超过2000的时候sql就会变得很慢并且 ...

  2. 万字干货 | Python后台开发的高并发场景优化解决方案

    嘉宾 | 黄思涵 来源 | AI科技大本营在线公开课 互联网发展到今天,规模变得越来越大,也对所有的后端服务提出了更高的要求.在平时的工作中,我们或多或少都遇到过服务器压力过大问题.针对该问题,本次公 ...

  3. 阿里、百度、美团都在用的‘’高并发秒杀系统‘’;抢红包、秒杀活动、微博热搜、12306抢票等高并发场景

    "秒杀活动"."抢红包"."微博热搜"."12306抢票"."共享单车拉新"等都是高并发的典型业务场 ...

  4. MySQL调优篇:单机数据库如何在高并发场景下健步如飞?

    在当前的IT开发行业中,系统访问量日涨.并发暴增.线上瓶颈等各种性能问题纷涌而至,性能优化成为了现时代中一个炙手可热的名词,无论是在开发.面试过程中,性能优化都是一个常谈常新的话题.而MySQL作为整 ...

  5. 实现高并发秒杀的七种方式

    引言 商品秒杀-超卖 解决商品超卖 方式一(改进版加锁) 方式二(AOP版加锁) 方式三(悲观锁一) 方式四(悲观锁二) 方式五(乐观锁) 方式六(阻塞队列) 方式七(Disruptor队列) 小结 ...

  6. 干货 | Python后台开发的高并发场景优化解决方案

    嘉宾 | 黄思涵 来源 | AI科技大本营在线公开课 互联网发展到今天,规模变得越来越大,也对所有的后端服务提出了更高的要求.在平时的工作中,我们或多或少都遇到过服务器压力过大问题.针对该问题,本次公 ...

  7. 高并发场景下缓存的常见问题

    作者介绍: 丁浪,非著名架构师.关注高并发.高可用的架构设计,对系统服务化.分库分表.性能调优等方面有深入研究和丰富实践经验.热衷于技术研究和分享. 声明:版权归丁浪作者本人所有,转载请联系作者本人 ...

  8. 本地缓存需要高时效性怎么办_缓存在高并发场景下的常见问题

    缓存一致性问题 当数据时效性要求很高时,需要保证缓存中的数据与数据库中的保持一致,而且需要保证缓存节点和副本中的数据也保持一致,不能出现差异现象.这就比较依赖缓存的过期和更新策略.一般会在数据发生更改 ...

  9. 分布式锁和mysql事物扣库存_这个是真的厉害,高并发场景下的订单和库存处理方案,讲的很详细了!...

    前言 之前一直有小伙伴私信我问我高并发场景下的订单和库存处理方案,我最近也是因为加班的原因比较忙,就一直没来得及回复.今天好不容易闲了下来想了想不如写篇文章把这些都列出来的,让大家都能学习到,说一千道 ...

最新文章

  1. Oracle数据库备份与恢复1\Oracle数据库备份与恢复(1)exp和imp 之三
  2. POJ3461 Oulipo ——KMP算法——Pku3461
  3. 一个只有十行的精简MVVM框架(下篇)
  4. 2019潜江职称计算机考试,2019湖北事业单位联考潜江地区笔试成绩分析
  5. 记住,你现在的操作是什么
  6. PHP Ajax 跨域问题最佳解决方案
  7. 【题解】跳房子-C++
  8. 线段树(多维+双成段更新) UVA 11992 Fast Matrix Operations
  9. C# Invoke 和 BeginInvoke的区别和共同点
  10. JZ29 最小的K个数 剑指Offer 40
  11. sonar jacoco 覆盖率为0_接口测试代码覆盖率(jacoco)方案分享
  12. java读取配置文件_java 读取配置文件
  13. 语音识别中输入输出的可能形式有哪些
  14. 计算机表格入门2013,Access2013从入门到精通
  15. element-UI中分页组件显示英文的解决方案
  16. 怎么测试网站访问速度?
  17. CTWAP和CTNET的区别
  18. 如何搭建一个会员网站?零基础用WordPress做一个会员网站视频教程
  19. 示例:波士顿房价预测
  20. Windows 8 自带定时关机的4种实现方法

热门文章

  1. html当中的属性cellspacing,HTML cellspacing 属性
  2. 万用表排查焊接线路(小白)
  3. RPN(区域生成网络)
  4. Faster R-CNN的RPN网络
  5. java Document 删除标签
  6. 多态、向上转型、向下转型
  7. 软件开发非著名高手修炼法:ET-TCARBSSW
  8. mysql表设计 不同价格_数据库表设计,不同的属性值会有不同的价格
  9. github优质项目推荐中文项目排行榜
  10. 常州市小学学校体育与家庭体育融合发展现状