什么是秒杀 秒杀场景一般会在电商网站举行一些活动或者节假日在12306网站上抢票时遇到。对于网站中一些稀缺或者特价的产品,电商网站一般会在约定的时间对其进行限量销售,因为这些产品的特殊性,会吸引大量用户前来抢购,并且会在约定时间同时在秒杀页面进行抢购。

设计思路 将请求拦截在系统上游,降低下流压力;秒杀系统特点就是并发量极大,但实际秒杀成功的请求数量确很少,所以如果不在前端拦截可能造成数据库读写锁冲突,甚至导致死锁,最终请求超时,甚至导致系统崩溃 充分利用缓存:利用缓存可以极大提高系统读写速度 消息队列:消息队列可以削峰,将拦截大量并发的请求,这也是一个异步处理过程,后台业务根据自己的处理能力,从消息队列中主动的拉取请求消息进行业务处理

前端方案 浏览器端(js): 页面静态化:将活动页面上的所有可以静态的元素全部静态化,并尽量减少动态元素,通过CDN来抗峰值 禁止重复提交:用户提交之后按钮置灰,禁止重复提交 用户限流:在某一时间内只允许用户提交一次请求,比如可以采取IP限流

后端方案 服务器控制器层(网关层) 限制UID(userID)访问频率:我们上面拦截了浏览器的访问请求,但准对某些恶意请求和攻击或者其他插件,在服务器控制层要准对同一个uid,限制访问频率

服务层 上面只拦截了一部分请求,当秒杀的用户量非常大时,即使每个用户只有一个请求,到服务层的请求数量还是很大。比如我们有100w用户同时抢购100台手机,服务层并发请求压力至少为100w。 1.采用消息队列缓存请求:既然服务器层知道库存只有100台手机,那完全没有必要把100w个请求都传递到数据库里,那么可以先把这些请求都写到消息队列里面缓存一下,数据库层订阅消息减少库存,减库存成功的请求返回秒杀成功,失败的返回秒杀结束 2.利用缓存应对读请求:对类似12306等购票业务,是典型的读多写少业务,大部分请求时查询请求,所以可以利用缓存分担数据库压力 3.利用缓存对写请求:缓存也是可以应对写请求,比如我们可以把数据库中库存数据迁移到Redis缓存中,所有减库存操作都在Redis中进行,然后通过后台进程把Redis中的用户秒杀请求同步到数据库中

数据库层 数据库层是最脆弱的一层,一般在应用设计时在上游就需要把请求拦截,数据库层只承担“能力范围内”的访问请求。所以,上面通过在服务层引入的队列和缓存,让底层的数据库高枕无忧

转载于:https://www.cnblogs.com/Eilen/p/9186308.html

实现商城商品秒杀分析相关推荐

  1. java商品秒杀逻辑_如何通过SpringBoot实现商城秒杀系统

    这篇文章主要介绍了如何通过SpringBoot实现商城秒杀系统,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 学习自:地址 1.主要流程 1.1数据 ...

  2. 商城业务-商品秒杀服务

    商城业务-商品秒杀服务 一.秒杀介绍 1.秒杀业务 2.秒杀流程 3.限流 二.秒杀 1.启动前端项目 1).修改coupon的网关 2).vscode代码 2.1).查询.新增秒杀场次 2.2).关 ...

  3. 谷粒商城:秒杀商品定时上架

    1.定时任务 1.spring中6位组成,不允许第七位的年,即秒.分.时.日.月.周 2.在周几的位置,1-7代表周一到周日,MON-SUN 3.定时任务不应该是阻塞的,默认是阻塞的. (1)可以让业 ...

  4. 商城-商品规格管理-SPU和SKU数据结构

    商城-商品规格管理-SPU和SKU数据结构 3.SPU和SKU数据结构 3.1.SPU表 3.1.1.表结构 3.1.2.spu中的规格参数 3.1.2.1.specifications字段 3.1. ...

  5. 电商项目实战之商品秒杀

    电商项目实战之商品秒杀 定时任务 corn表达式 实现方式 基于注解 基于接口 实战 秒杀系统 秒杀系统关注问题 秒杀架构设计 商品上架 获取当前秒杀商品 获取当前商品的秒杀信息 秒杀最终处理 参考链 ...

  6. Javascript实现商品秒杀倒计时(时间与服务器时间同步)

    在一些购物商城经常看到有很多商品做秒杀活动,也就是倒计时,本篇文章给大家介绍Javascript实现商品秒杀倒计时(时间与服务器时间同步),需要的朋友可以了解下 现在有很多网站都在做秒杀商品,而这其中 ...

  7. api商品分享源码_SSM框架高并发和商品秒杀项目高并发秒杀API源码免费分享

    前言: 一个整合SSM框架的高并发和商品秒杀项目,学习目前较流行的Java框架组合实现高并发秒杀API 源码获取:关注头条号转发文章之后私信[秒杀]查看源码获取方式! 项目的来源 项目的来源于国内IT ...

  8. 商城-商品规格管理-商品规格参数管理

    商城-商品规格管理-商品规格参数管理 2.商品规格参数管理 2.1.页面实现 2.1.1.整体布局 2.1.2.data中定义的属性 2.2.规格参数的查询 2.2.1.树节点的点击事件 2.2.2. ...

  9. 谷粒商城--商品发布--笔记九

    谷粒商城–商品发布–笔记九 1.基本信息页面 1.选择分类后品牌列表不显示问题 原因 使用到了PubSub 但是没有依赖 解决 npm install --save pubsub-js 在src下的m ...

最新文章

  1. FlexoCalendar周日历出错的解决方法
  2. 【最优化方法】穷举法 vs. 爬山法 vs. 模拟退火算法 vs. 遗传算法 vs. 蚁群算法
  3. 图形渲染技术分享:《GTA V 》图形分析摘要
  4. 第二阶段 工作总结 05
  5. 【转】[iOS] 关于 self = [super init];
  6. Java 中判断一个字符串是否包含另外一个字符串的方法
  7. 盘点机器学习领域的五大流派
  8. ajax 通过json xml文件,php+Ajax处理xml与json格式数据的方法示例
  9. .net项目进不去后台解决
  10. webgl与opengl技术资讯
  11. 关于C++中的继承感悟
  12. QTP的那些事--weblist中相关的内容获取
  13. Python实战项目(一)刷网页访问量程序
  14. 【配置管理】配置审核-物理配置审核-功能配置审核-配置管理审核
  15. 基于matlab雷达算法,基于MATLAB的雷达信号处理
  16. linux系统进入管理员命令行,电脑如何进入管理员命令提示符
  17. 技术人员谈管理之帕累托法则(80/20法则)
  18. 烽火狼烟丨VMware Workspace ONE Access身份验证绕过、本地提权漏洞风险提示
  19. 浏览器证书基础介绍和如何测试本地浏览器的HTTPS的完备性
  20. 只有在vc 中才能使用mfc吗?什么是MFC?

热门文章

  1. python入门指南 许半仙txt百度云-《剑有话说》TXT全本 百度云网盘下载 by一刀绣春...
  2. 我只会python、怎么搞个软件出来-python---很多行代码做一个自动打开软件的程序...
  3. python语言程序设计嵩天-python语言程序设计基础(嵩天版),第二章程序练习题...
  4. 开课吧python小课值得么-领导想提拔你,从来看的不是努力!
  5. 基于python的界面自动化测试-基于Python语言的自动化测试实战第二章(上)
  6. python在线工具-在线 Python运行工具
  7. python绘制直方图-python matplotlib库直方图绘制详解
  8. python有没有中文版-python有中文版吗
  9. 案例驱动python编程入门-事件驱动程序
  10. python培训班一般多少钱-报个python培训班多少钱