秒杀业务的特点就是多个人读一个数据,难点就是读写冲突,锁情况特别的严重。 所以我们尽量不要让请求落在数据库上去,让请求拦截在系统的上游。解决思路:

1、限流:屏蔽掉无用的流量,允许少部分流量流向后端。

2、削峰:瞬时大流量峰值容易压垮系统。常用的消峰方法有异步处理、缓存和消息中间件等技术

  • 异步处理:秒杀系统是一个高并发系统,采用异步处理模式可以极大地提高系统并发量,其实异步处理就是削峰的一种实现方式。
  • 缓存:秒杀系统本身是一个典型的读多写少的应用场景【一趟火车其实只有2000张票,200w个人来买,最多2000个人下单成功,其他人都是查询库存,写比例只有0.1%,读比例占99.9%】,非常适合使用缓存。
  • 消息队列:消息队列可以削峰,将拦截大量并发请求,这也是一个异步处理过程,后台业务根据自己的处理能力,从消息队列中主动的拉取请求消息进行业务处理。

前端优化

1、前端静态资源缓存,页面静态化和使用cdn缓存或redis缓存

2、限流:1使用验证码防止机器人爬虫脚本自动提交2禁止重复提交,用户提交后按钮置灰

后端优化

1、利用负载均衡,使用多个机器处理并发请求

2、秒杀开始前,前台不能得到秒杀地址,防止提前得到秒杀地址,模拟秒杀请求

3、限制同一个用户id访问频率

4、限制同一时间请求次数,达到请求上限时,随机拒绝部分请求来保证服务可用

5、业务分离,将秒杀系统和其它业务分离,单独放在高配机器上,防止影响其它业务系统

6、将秒杀请求放入到消息队列队列,后台订阅消息减库存,检测消息队列长度,达到最大库存不加消息队列,直接返回秒杀失败的消息

7、利用缓存应对读请求,利用缓存减轻数据库压力

8、利用缓存应对写请求,将数据库的库存数据转到redis里面,所有减库存操作都在redis里面进行,然后通过后台进程把redis里面的用户秒杀请求同步到数据库

https://www.cnblogs.com/diegodu/p/9244955.html

http://www.360doc.com/content/19/0720/20/45689189_850016856.shtml

【面试题】秒杀系统设计相关推荐

  1. 小工匠聊架构-超高并发秒杀系统设计 06_数据一致性

    文章目录 Pre 概 减库存分析 方案利弊 下单减库存 付款减库存 预扣库存 大型秒杀中如何减库存 秒杀减库存的优化 Pre 小工匠聊架构-超高并发秒杀系统设计 01_总体原则和架构演进 小工匠聊架构 ...

  2. 小工匠聊架构-超高并发秒杀系统设计 04_流量削峰设计

    文章目录 Pre 概 why how 排队 问答机制 方案设计 分层过滤 总结 Pre 小工匠聊架构-超高并发秒杀系统设计 01_总体原则和架构演进 小工匠聊架构-超高并发秒杀系统设计 02_数据的动 ...

  3. 淘宝秒杀系统设计的几个注意点

    转载自  淘宝秒杀系统设计的几个注意点 还记得2013年的小米秒杀吗?三款小米手机各11万台开卖,走的都是大秒系统,3分钟后成为双十一第一家也是最快破亿的旗舰店.经过日志统计,前端系统双11峰值有效请 ...

  4. 秒杀系统设计的 5 个要点:前端三板斧+后端两条路

    转载自 秒杀系统设计的 5 个要点:前端三板斧+后端两条路 高并发,cache,锁机制 基于缓存架构redis,Memcached的先进先出队列. 稍微大一点的秒杀,肯定是分布式的集群的,并发来自于多 ...

  5. 秒杀系统设计中的业务性思考

    秒杀不是一个新鲜事物,特别是过去几年电商和互金业务的蓬勃发展,各种电商节的兴起,促使秒杀已经变成了非常重要的业务功能.我这几年也没少和"秒杀"打交道,和团队共同经历了各种挣扎后,积 ...

  6. 架构师之路(18)讲解秒杀系统设计

    1 秒杀场景 秒杀场景 登陆12306进行火车票抢座 1599元购入飞天茅台 周董演唱会的门票 双十一秒杀活动 秒杀场景关注点 严格防止超卖:库存1000件卖了1020件,要杀个码农祭天了!防止超卖是 ...

  7. 这也太香了吧!阿里甩出2021最新秒杀系统设计实录!全新演绎!

    近年来,互联网市场风起云涌.为了抢到更多的用户,各大商家各式各样的营销手段层出不穷.其中最普遍常见的不用我说大家也知道是"双十一"秒杀抢购场景.外行看热闹,内行看门道,对于秒杀业务 ...

  8. (免费分享)基于JavaWeb的高校试题库管理系统设计与实现 毕业论文+项目源码及数据库文件(已发)

     源码获取:我的博客资源页面可以下载!!!! 项目名称 (免费分享)基于JavaWeb的高校试题库管理系统设计与实现 毕业论文+项目源码及数据库文件(已发) 系统说明 随着信息技术的不断发展,我们已经 ...

  9. 你了解淘宝大秒杀系统设计详解吗?

    1. 一些数据 2. 热点隔离 3. 动静分离 4. 基于时间分片削峰 5. 数据分层校验 6. 实时热点发现 7. 关键技术优化点 7.1 Java处理大并发动态请求优化 7.2 同一商品大并发读问 ...

  10. 淘宝大秒杀系统设计详解

    摘要:最初的秒杀系统的原型是淘宝详情上的定时上架功能,由于有些卖家为了吸引眼球,把价格压得很低.但这给的详情系统带来了很大压力,为了将这种突发流量隔离,才设计了秒杀系统,文章主要介绍大秒系统以及这种典 ...

最新文章

  1. 图像柔光效果(SoftGlow)的原理及其实现。
  2. Transformer中的位置编码(PE,position)
  3. Pikachu-XXE(xml外部实体注入漏洞)
  4. login组件的两种用法_Android-模块化、组件化、插件化、热修复-组件化-组件间的通信(本地,下沉,bus,路由)...
  5. 【POJ - 1502】MPI Maelstrom(Dijkstra单源最短路--求一点到其余个点的最小值的最大值)
  6. QIPAIFANS网站程序【2013最新版】
  7. VB在XP/2K 任务管理器的进程列表中隐藏当前进程
  8. MySQL之Handler_read_*查看索引使用情况
  9. 设计模式——状态模式
  10. UVa 674 Coin Change(完全背包)
  11. 计算机英语会话实用电脑英语,计算机英语会话(MP3+中英字幕) 第41期:实用电脑英语...
  12. RkConverter二进制报文解析工具
  13. 关于拿到一个别人给你已经上架的App源代码时,首先需要干的几个事情
  14. TUIO+激光投影互动
  15. 不记得是哪部电影里的段子了
  16. 复制瑞幸模式,出局的陆正耀再创业,要先开500家面馆
  17. Echarts 学习系列(3)-Echarts动态数据交互
  18. 0-SIM卡的迭代(SIM-USIM-eSIM-vSIM-softSIM)
  19. C语言 学生成绩统计
  20. IDEA查看jks文件

热门文章

  1. 用Stirling公式的应用
  2. 公元前到现在的所有朝代
  3. 用fpm制作mysql的rpm包_Fpm 之 Mysql-5.7.21 rpm 包制做
  4. Linux 脚本部署应用宝,腾讯合作伙伴大会开幕在即 应用宝或再升级部署内容分发...
  5. web2py基础教程(2)
  6. [附源码]JAVA+ssm流浪猫狗救助站(程序+Lw)
  7. 小知识:烫烫烫...是怎么来的
  8. arduino小夜灯
  9. 收集了三个开源项目管理系统
  10. 【STL】容器 - list的模拟实现