秒杀活动java怎么实现

秒杀与其他业务最大的区别在于:秒杀的瞬间:

(1)系统的并发量会非常的大

(2)并发量大的同时,网络的流量也会瞬间变大。

一个秒杀或者抢购页面,通常分为2个部分,一个是静态的HTML等内容,另一个就是参与秒杀的Web后台请求接口。

  第一种处理:某个商品可秒杀的数量是10,那么在秒杀活动开始之前,把商品的ID和数量加载到缓存,比如:Redis。服务端收到请求的时候,首先减一下Redis里面的数量,如果数量减到0随后的访问直接返回秒杀失败。也就是说,只有10个请求最终会去实际的请求DB。

  第二种处理:先把请求写到消息队列,做一个缓存,然后再去慢慢的更新数据库。这样做以后,前端用户的请求可能不会立即得到响应是成功还是失败,很可能得到的是一个排队中的返回值,这个时候,需要客户端再去服务端轮询,因为我们不能保证一定就秒杀成功了。当服务端出队,生成订单以后,把用户ID和商品ID写到缓存中,来应对客户端的轮询就可以了。

相关问题:https://blog.csdn.net/icangfeng/article/details/81201575

原文地址:https://www.cnblogs.com/lgg20/p/12341623.html

时间: 2024-08-30 11:00:20

秒杀活动java怎么实现的相关文章

商城秒杀活动要点

商城秒杀的特性: 1.定时秒杀.即商品在秒杀时间点之前是不能进行购买下单.业务较简单. 2.秒杀前用户会频繁刷新秒杀页面. 3.秒杀持续时间短.瞬时访问流量高. 4.同一用户/IP禁止秒杀多次. 秒杀系统设计要点: 1.将秒杀系统独立部署,甚至使用独立域名,使其与原有网站完全隔离.主要防止秒杀对现有网站业务造成冲击. 2.页面静态化:将活动页面上的所有可以静态的元素全部静态化,并尽量减少动态元素.通过CDN来抗峰值. 3.禁止重复提交:用户提交之后按钮置灰,禁止重复提交 用户限流:在某一时间段内

【总结】瞬时高并发(秒杀/活动)Redis方案(转)

转载地址:http://bradyzhu.iteye.com/blog/2270698 1,Redis 丰富的数据结构(Data Structures) 字符串(String) Redis字符串能包含任意类型的数据 一个字符串类型的值最多能存储512M字节的内容 利用INCR命令簇(INCR, DECR, INCRBY)来把字符串当作原子计数器使用 使用APPEND命令在字符串后添加内容 列表(List) Redis列表是简单的字符串列表,按照插入顺序排序 你可以添加一个元素到列表的头部(左边:

【公告】关于“天天秒杀”活动时间调整

自2017年1月中旬上线以来,天天秒杀活动得到了广大新老学员的热烈支持,在此感谢大家对51CTO学院的包容与厚爱! 下载"51CTO学院"APP,随时随地秒课>>> 这一年中,我们也在持续优化秒杀体验:从最初仅限在APP中参与,到现在网页端也同步进行:同时严格把控秒杀课程的质量,优选新课加入,旨在让学员用最合算的价格学到最超值的课程! 18年,我们希望天天秒杀能有一番新气象,给大家带来更加新鲜而火热的感觉!所以-重点就是: 每场秒杀持续时间从2小时改为1小时,这样才有

秒杀活动的技术挑战

作者:李智慧链接:https://www.zhihu.com/question/20496392/answer/17272255来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 1. 秒杀活动的技术挑战假设某网站秒杀活动只推出一件商品,预计会吸引1万人参加活动,也就说最大并发请求数是10000,秒杀系统需要面对的技术挑战有:对现有网站业务造成冲击秒杀活动只是网站营销的一个附加活动,这个活动具有时间短,并发访问量大的特点,如果和网站原有应用部署在一起,必然会对现有业务

精通Access数据库从零基础学习系列第1部特惠秒杀活动即将开始

Access是office办公套件中的一个极为重要的组成部分,现在它已经成为最流行的桌面数据库管理系统.本课程为Access数据库知识系列课程第1部,课程目标:结合简单实例讲解,零基础快速学习Access数据库,数据库格式为 mdb格式.课程编排重在实用,讲解通俗易懂.让您在最短的时间内学会最需要的知识点,为您节省宝贵的时间.本课程章节计划表:第一章:Access数据库概述1.Access数据库概述第二章:Access数据库安装文件下载及安装1.Access数据库安装文件下载及安装第三章:创建数

synchronized 控制并发(活动秒杀)

1.首先我们新建一个Controller用于秒杀: package com.imooc.Controller; import com.imooc.service.impl.SeckillServiceImpl; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.

.NetCore+Jexus代理+Redis模拟秒杀商品活动

开篇叙 本篇将和大家分享一下秒杀商品活动架构,采用的架构方案正如标题名称.NetCore+Jexus代理+Redis,由于精力有限所以这里只设计到商品添加,抢购,订单查询,处理队列抢购订单的功能:有不足或者不够详细的还请见谅,顺手点个推荐也不错: a. 秒杀流程 b. 封装StackExchange.Redis的使用类 c. Ubuntu16.04上使用Jexus搭建代理完成分布式部署 d. NetCore写实时监控队列服务 秒杀架构设计图︿( ̄︶ ̄)︿三幅 1. 一般业务性架构 2. 后端分布

Java秒杀系统--3.商品列表的实现

简介: 实现获取商品列表的请求 1.前端发送请求 在用户登录成功后会制动跳转到商品列表页面. 1 success: function (data) { 2 layer.closeAll(); 3 if (data.code == 0) { 4 layer.msg("成功"); 5 window.location.href = "/goods/to_list"; 6 } else { 7 layer.msg(data.msg); 8 } 9 }, 2.后端使用页面缓存

秒杀系统架构分析与实战

0 系列目录 秒杀系统架构 秒杀系统架构分析与实战 1 秒杀业务分析 正常电子商务流程 (1)查询商品:(2)创建订单:(3)扣减库存:(4)更新订单:(5)付款:(6)卖家发货 秒杀业务的特性 (1)低廉价格:(2)大幅推广:(3)瞬时售空:(4)一般是定时上架:(5)时间短.瞬时并发量高: 2 秒杀技术挑战 假设某网站秒杀活动只推出一件商品,预计会吸引1万人参加活动,也就说最大并发请求数是10000,秒杀系统需要面对的技术挑战有: 对现有网站业务造成冲击 秒杀活动只是网站营销的一个附加活动,