分布式商城秒杀实现 您所在的位置:网站首页 分布式高并发淘宝秒杀商城 分布式商城秒杀实现

分布式商城秒杀实现

2023-06-25 21:23| 来源: 网络整理| 查看: 265

秒杀工程的演变,在一致性要求下面对高并发和高速读写 秒杀 页面倒计时 //抢购URL function kill(){ location.href="/kill/gokill?id=" + [[${kill.id}]] + "&gnumber=1"; } //js的定时器 // setTimeout(function(){}, 1000); 隔1秒后,执行该方法一次,仅仅只会执行一次 // setInterval(function(){}, 1000); 每隔1秒都会执行一次 //使用setInterval+递归解决用户第一秒显示00的问题 //实现倒计时 function time(){ //秒杀开始的时间 var begin = new Date([[${kill.starttime}]]); //获得当前时间 var now = new Date();//获取时间服务器 - ajax //计算相差多久 var howtime = begin - now; if(howtime > 0){ //计算倒计时 var day = format(parseInt(howtime/1000/60/60/24)); var hour = format(parseInt(howtime/1000/60/60%24)); var min = format(parseInt(howtime/1000/60%60)); var second = format(parseInt(howtime/1000%60)); var showtime = day + "天" + hour + "时" + min + "分" + second + "秒"; $("#span_id").html(showtime); setTimeout(function(){ time(); }, 1000); } else { //秒杀开始 // alert("秒杀开始"); $("#btn1").attr("disabled",false); } } //调用方法 time(); // setInterval(function(){ // time(); // }, 1000); //格式化数字显示为 00:00:00 function format(number){ if(number < 10){ return "0" + number; } return number; } 秒杀核心service的演变

一.简单的service逻辑: 1.查询kill库存 2.根据库存判断是否秒杀成功 3.成功则生成订单

@Override @Transactional public int kill(Integer id, Integer gnumber, int uid) { //先查询kill库存 Kill kill = killDao.queryKillById(id); //库存不足直接返回0 if(kill.getSave() = gnumber 引入Redis 业务逻辑

将数据库的数据先存放在redis中,然后我们直接对redis进行脚本操作,将需要添加的订单信息也存放到redis中然后判断save



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有