springboot实现电商并发秒杀系统 拿走不谢

概述

随着互联网电商的兴起,各种活动层出不穷。秒杀活动作为一种经典活动具有瞬时并发大的特点,同时秒杀设计也是面试常考题之一,本文以单机为示例设计开发秒杀系统。

源码地址: https://gitee.com/tech-famer/farmer-seckill

效果展示

在这里插入图片描述

系统分析

  1. 秒杀页面静态化
  2. 倒计时时间服务器中获取
  3. 秒杀活动开始前隐藏秒杀链接
  4. 秒杀限流
  5. 秒杀商品redis缓存
  6. 防止超卖

系统设计

表结构设计

create datebase seckill;

use seckill;

CREATE TABLE seckill.`goods` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `goods_name` varchar(32) NOT NULL COMMENT '商品名称',
  `goods_price` decimal(10,2) NOT NULL COMMENT '商品价格',
  `goods_count` int(11) NOT NULL COMMENT '剩余数量',
  `total_count` int(11) NOT NULL COMMENT '总数量',
  `start_time` datetime NOT NULL COMMENT '开始时间',
  `end_time` datetime NOT NULL COMMENT '结束时间',
  `create_user` varchar(32) NOT NULL COMMENT '创建用户',
  `create_time` datetime NOT NULL COMMENT '创建时间',
  `update_user` varchar(32) NOT NULL COMMENT '更新用户',
  `update_time` datetime NOT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COMMENT='秒杀商品表';


CREATE TABLE eckill.`secorder` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `order_no` varchar(32) NOT NULL COMMENT '订单号',
  `goods_id` bigint(20) NOT NULL COMMENT '商品ID',
  `goods_name` varchar(32) NOT NULL COMMENT '商品名称',
  `goods_num` int(11) NOT NULL COMMENT '商品数量',
  `amount` decimal(10,2) NOT NULL COMMENT '订单总价',
  `pay_seq` varchar(32) NOT NULL COMMENT '支付流水号',
  `order_status` varchar(2) NOT NULL COMMENT '订单状态',
  `goods_snapshots` text NOT NULL COMMENT '商品快照',
  `user_id` varchar(32) NOT NULL COMMENT '购买用户',
  `create_time` datetime NOT NULL COMMENT '创建时间',
  `update_user` varchar(32) NOT NULL COMMENT '更新用户',
  `update_time` datetime NOT NULL COMMENT '更新时间',
  `pay_time` datetime DEFAULT NULL COMMENT '支付时间',
  `expire_time` datetime NOT NULL COMMENT '过期时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COMMENT='秒杀订单表'
页面静态化

大型电商平台的页面一般在做活动的时候会租用CDN服务,将静态资源放到CDN服务来避免每次用户刷新页面请求服务器带来压力。静态页面会利用浏览器缓存静态资源,在用户持续刷新页面时,浏览器直接读取缓存而非直接请求链接获取。

单机具体做法如下:

1. 项目配置文件中添加静态资源相关配置
spring:
  resources:
    static-locations: classpath:/static/
  mvc:
    static-path-pattern: /static
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值