电商项目:商品秒杀系统个人理解

秒杀是电商平台的一种品牌推广、促销的一个高并发短时间的一个活动。可以提高用户体验度和提高品牌知名度,
会在活动开始之前大力宣传,假如促销一百件商品,可能会吸引一万个用户同时在一个页面不断刷新,这里可以
用freemarker生成静态页,通过ajax动态获取必需的数据,等待活动时间开始,但是如果只在静态页进行对按钮的
限制,可能会出现有些用户修改电脑时间、前端js,导致出现提前抢购的情况。我们采用的解决方案是在后台也进,
从页面去进行抢购要快得多,我们通过定时器,在活动开始的时候生成一个随机字符串组成的密钥存入redis,在用
户刷新页面时,如果时间到了活动范围,会从redis中查出密钥放入隐藏域中并且开放按钮,在进入方法时,进行密
钥对比,如果密钥正确才能下单。在进行下单的时候,只有在支付成功后才算作真正的库存减少,可能两个人同时
下单,导致支付后的售出数量超过库存数量,出现货不够发的情况,为了避免这种情况,我们把库存数量分为可出
售库存数量以及锁定库存数量,我们在下单的时候会对库存进行锁定,因为库存是存在redis中的,在下单的时候会
用redis提供的incr方法和decr方法对可出售库存以及锁定库存数量的改查变成一步,防止执行到一半时与其他用户
发生冲突,(举例),在订单成功支付后,再对锁定库存数量进行减少,并且通过MQ去异步存储到mysql,防止高
并发mysql服务器压力太大,遇到退单的情况,对锁定库存数量进行减少,再对可出售数量进行增加。

原文地址:https://www.cnblogs.com/chihao666/p/10369062.html

时间: 2024-11-08 15:54:04

电商项目:商品秒杀系统个人理解的相关文章

电商项目商品详情页设计

当用户进入京东首页,点击搜索手机进入搜索页面,点击一款手机进入商品详情页面,主要展示商品的信息,主要分为三块信息: 1:基本信息:展示商品的基本信息,包括sku价格等基本信息. 2:商品描述()

Java企业级电商项目实战 Tomcat集群与Redis分布式

本套课程包含:java电商项目实战课程 Tomcat集群视频教程 Redis项目实战课程课程目录1-1 课程导学1-2 大型Java项目架构演进解析1-3 一期课程与问答服务回顾1-4 一期项目结构和代码回顾1-5 课程使用系统及技术版本介绍(一期+二期)1-6 二期项目初始化第2章 Lombok框架集成及原理解析本章会对Lombok框架进行介绍,同时会讲解Lombok的原理.并手把手领着小伙伴们实战,引入Lombok以及IDE安装Lombok插件.然后会带着大家实战Coding,讲解@Data

系统设计题:如何设计一个电商平台积分兑换系统!

1.拉开差距的一类面试题 现在面试经常会遇到一类问题,面试官让你现场设计出某个业务场景下的一个系统,这个系统往往在业务或者技术上有一定难度,主要考察的是你多年积淀下来的系统设计的能力以及技术思维的能力. 类似的这类系统设计题目很多,比如: 请你设计一个秒杀系统 请你设计一个支撑百万用户的IM消息系统 请你设计一个微信红包系统 请你设计一个电商平台积分兑换系统 这些题目本身都是开放式命题,没有固定答案.遇到这种问题,一定不要慌,关键是在现场要思路清楚,有理有据,慢慢分析. 本文就其中一个问题:设计

C#大型电商项目优化(二)——嫌弃EF与抛弃EF

上一篇博文中讲述了使用EF开发电商项目的代码基础篇,提到EF后,一语激起千层浪.不少园友纷纷表示:EF不适合增长速度飞快的互联网项目,EF只适合企业级应用等等. 也有部分高手提到了分布式,确实,性能优化从数据库出发,初期就加索引,然后垂直拆分,水平拆分,读写分离,甚至是分布式事务,阳春白雪,格局很高.然而笔者希望通过渐进的过程来优化这个项目,我们缩小格局,从细节查看不同方案的优劣. 之前提过,使用EF最主要的原因是项目时间紧迫,EF搭建速度快,熟悉的同事也多,使用方便.这个决策确实帮助我们挺过了

电商项目需求分析---七月实习总结

这个月,丫头很忙~~~ 七月的天,像娃娃的脸,说变就变,伴着夏的热情,小编继续着实习之路,这个月,开始了传说中的封闭式开发,经理天天请吃饭,吃的小编现在的体重都八十五斤了,要注意保持身材,咳咳,还有就是小编这辈子都不想再吃黄焖鸡米饭了,看到鸡都害怕,所以说嘛,任何事情都要有度,如果超过了这个度,后果不堪设想,上个月,也就是六月份的时候,小编简单总结了一下六月份的实习收获,一眨眼的功夫,踩到了七月份的尾巴,这个月,小编梳理了一下项目的思绪,对整个项目有了一个整体的把控,这个月的实习总结呢,就带着各

Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式百度云实战分享

muke慕课实战课程分享QQ313675301 新增课程: Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式百度云实战分享 后端开发: 1.高级java软件架构师实战培训视频教程2.大型SpringMVC,Mybatis,Redis,Solr,Nginx,SSM分布式电商项目视频教程3.Spark Streaming实时流处理项目实战4.Java校招面试 Google面试官亲授5.Java开发企业级权限管理系统6.Java大牛 带你从0到上线开发企业级电商项目7.Java

Java电商项目面试题(四)

dubbo服务开发流程,运行流程?zookeeper注册中心的作用?使用流程:第一步:要在系统中使用dubbo应该先搭建一个注册中心,一般推荐使用zookeeper.第二步:有了注册中心然后是发布服务,发布服务需要使用spring容器和dubbo标签来发布服务.并且发布服务时需要指定注册中心的位置.第三步:服务发布之后就是调用服务.一般调用服务也是使用spring容器和dubbo标签来引用服务,这样就可以在客户端的容器中生成一个服务的代理对象,在action或者Controller中直接调用se

Java电商项目面试题(六)

插入商品的话,要求级联插入几张表,你们当时是怎么实现的?通过Redis生成商品编号(ID)保存商品表再保存Sku表(此表中外键,是商品表的ID)在青岛做了两年开发,大大小小参与过三个项目的开发,一个是某公司内部的人员管理系统,一个是物流项目,最近做的是一个电商项目.在整个项目中,我们采用的是nginx+tomcat来部署的(面试官会可能问nginx是谁来部署的?如何部署的?Nginx的执行流程,优点),nginx一方面做加载静态资源的服务器,另一方面来做反向代理和负载均衡.因为该项目需要在多个环

Java开源生鲜电商平台-OMS订单系统中并发问题和锁机制的探讨与解决方案(源码可下载)

Java开源生鲜电商平台-OMS订单系统中并发问题和锁机制的探讨与解决方案(源码可下载) 说明:Java开源生鲜电商中OMS订单系统中并发问题和锁机制的探讨与解决方案: 问题由来     假设在一个订单系统中(以火车票订单系统为例),用户A,用户B都要预定从成都到北京的火车票,A.B在不同的售票窗口均同时查询到了某车厢卧铺中.下铺位有空位.用户A正在犹豫订中铺还是下铺,这时用户B果断订购了下铺.当用户A决定订下铺时,系统提示下铺已经被预订,请重新选择铺位.在这个系统场景中,我们来探讨一下,火车票