![](https://img-blog.csdnimg.cn/1e8b15f0246b40b5b23222d3d439dd38.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
java电商秒杀方案
文章平均质量分 76
百万流量主流秒杀方案
alwarse
这个作者很懒,什么都没留下…
展开
-
【Java秒杀方案】13.Jmeter压力测试 接口优化效果 数据跟踪 接口限流补充说明(计数器,漏桶,令牌桶)
商品列表测试 /goods/toList1.没有缓存前 吞吐量 22932.添加redis缓存之后 吞吐量 6693(之前是2293)商品详情测试 goods/toDetail/1没有做静态化 吞吐量 2048做了静态化,同时redis缓存商品对象 吞吐量3356,能达到6949静态化 goodsDetail.html?goodsId=1秒杀接口测试 /seckill/doSeckill1.没有做接口优化 吞吐量1300 出现超卖 库存为负数商品超卖 10个库存,卖掉48原创 2021-12-05 16:39:20 · 467 阅读 · 0 评论 -
【Java秒杀方案】12.功能开发-【订单详情】排队秒杀,查询秒杀结果及订单展示,网页静态化
订单展示1. 功能要点秒杀,进入排队,等待秒杀结果 getResult秒杀成功,跳转订单页面 跳转订单页面1./seckill/getResult商品秒杀后,成功预减库存后,发送下单消息到队列,这个时候先返回前端用户“正在排队中”,只有真正下单,把数据写入到数据库,同时会把订单信息放在redis中,(oredr:userId:goodsId),这个时候才会返回秒杀成功,提示跳转到订单详情页面如果查询到商品已经没有库存,同时又没有下单成功,这个时候前端就不需要返回调用getResult,直原创 2021-12-05 15:49:14 · 709 阅读 · 0 评论 -
【Java秒杀方案】11.功能开发-【商品秒杀及优化】防止超卖 接口优化(redis预减库存,内存标记减少redis访问,RabbitMQ异步下单) 安全优化(隐藏秒杀接口,验证码,接口防刷)
商品秒杀核心功能及优化1. 正常秒杀流程在商品详情页面等待秒杀倒计时–http://localhost:8080/goodsDetail.htm?goodsId=2倒计时为0,开始秒杀,点【秒杀】按钮开始秒杀 --http://localhost:8080/seckill/doSeckill?goodsId=2服务端收到秒杀请求,首先判断是不是在秒杀期间,再判断秒杀商品是否有库存上面条件都满足,则进入下单流程,下单流程分3步,1.减库存 2.新增订单信息 3.新增秒杀订单信息2. 秒杀存在问原创 2021-12-05 15:27:56 · 4013 阅读 · 1 评论 -
【Java秒杀方案】10.功能开发-【商品详情展示优化】页面缓存,前后端分离(网页静态化),对象缓存
商品详情-展现http://localhost:8080/goodsDetail.htm?goodsId=2redis商品对象缓存1.功能要点1.1 商品表和秒杀商品表分开设计的好处:t_goods,t_seckill_goods ,t_order,t_seckill_order满足业务需要,可能有些商品在参加秒杀活动的同时,还再正价售卖商品秒杀的价格和正常价格不一致,可能每次秒杀的价格也不一样,通过t_seckill_goods ,可以区分开秒杀订单表t_seckill_goods ,原创 2021-12-05 10:23:11 · 554 阅读 · 0 评论 -
【Java秒杀方案】9.功能开发-【商品列表】 goodsList 页面缓存,thymeleaf 模板引擎 手动渲染
goodsList代码实现前端goodsList.htmlhttp://localhost:8080/goods/toList 点【详情】,跳转到商品详情页面http://localhost:8080/goodsDetail.htm?goodsId=2<!DOCTYPE html><html lang="en" xmlns:th="http://www.thymeleaf.org"><head> <meta charset="UTF-8"原创 2021-12-04 16:02:22 · 728 阅读 · 0 评论 -
【Java秒杀方案】8.秒杀整体流程(登录-商品列表-商品详情-等待抢购-秒杀-排队-订单 )分布式会话 用户登录 二次md5加密 共享session
秒杀流程演示1登录页面http://localhost:8080/login/toLogin2.登录成功,进入商品列表页面http://localhost:8080/goods/toList3.商品详情http://localhost:8080/goodsDetail.htm?goodsId=23.1 秒杀,进入排队,等待秒杀结果 getResult3.2 秒杀成功,跳转订单页面 跳转4.订单页面http://localhost:8080/orderDetail.htm?ord原创 2021-12-04 15:33:43 · 907 阅读 · 0 评论 -
【Java秒杀方案】7.MyBatis-Plus 代码生成器 generator (controller/mapper/pojo/service/impl)
代码生成器 generator 工程官方教程pom.xml注入依赖mybatis-plus-boot-startermybatis-plus-generatorfreemarkermysql-connector-java<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSc原创 2021-12-04 14:01:21 · 329 阅读 · 0 评论 -
【Java秒杀方案】6.全局异常处理,参数校验 --LoginVo中 spring-boot-validation扩展 @IsMobile mobile IsMobileValidator
全局异常处理GlobalException.java --RuntimeException继承自运行时异常,直接抛出,不需要try catchpackage com.example.miaosha.exception;import com.example.miaosha.vo.RespBeanEnum;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;@Data@No原创 2021-12-04 10:48:07 · 380 阅读 · 0 评论 -
【Java秒杀方案】5.jmeter 5.4 centos7 jkd1.8 压力测试流程 测试计划 准备测试用户数据 聚合报告查看
jmeter压力测试1.运行windwos运行jmeter.bat2.配置 jmeter.propertiessampleresult.default.encoding=UTF-83配置测试计划3.1 添加 线程 线程组【线程组】线程数 1000ramp-up秒 0循环次数 13.2 线程组 添加配置元件3.2.1 【http请求默认值】协议 HTTP服务器 localhost端口 80803.2.2 【CSV数据文件设置】D:/java/springboot/conf原创 2021-11-30 09:09:07 · 284 阅读 · 0 评论 -
【Java秒杀方案】4. rabbitMQ 3.8.5安装 erlang_23 jdk1.8 centos7 Springboot 集成 starter Exchange RabbitMQConfig
RabbitMQ安装1.在线安装依赖环境:yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz2.安装Erlang官网提示:https://www.erlang-solutions.com/resources/download.html2.1esl-erlang_23.0.2-1_centos原创 2021-11-30 08:46:17 · 1294 阅读 · 1 评论 -
【Java秒杀方案】3.redis 安装 及 shell 控制台命令 集成Springboot starter Demo
1.redis 源码安装,配置,启动服务1.1redis 6.2.6 下载https://redis.io/download上传解压tar zxvf redis-6.2.6.tar.gzredis 源码安装–makeyum -y install gcc-c++ automake autoconfmake MALLOC=libc–make installmake PREFIX=/home/cch/app/redis install1.2 redis 配置redis.conf 配置文件更原创 2021-11-29 22:00:10 · 686 阅读 · 0 评论 -
【Java秒杀方案】2.mysql8-centos7-jkd1.8安装 数据库建表及数据备份sql
mysql centos 安装1.安装centos192.168.25.30--关闭防火墙查看防火墙状态firewall-cmd --state停止firewallsystemctl stop firewalld.service禁止firewall开机启动systemctl disable firewalld.service 2.安装jdktar -zxvf jdk-8u281-linux-x64.tar.gzecho $PATHsuvi /etc/profileexpo原创 2021-11-29 21:38:39 · 565 阅读 · 0 评论 -
【Java秒杀方案】1. 项目搭建 SpringBoot环境搭建 集成Thymleaf,RespBean 集成mybatis User参数校验 UserContext,自定义注解_接口限流防刷
项目搭建1. SpringBoot环境搭建1.1 pom.xml-com.example.miao主要依赖 dependencyspring-boot-starter-thymeleaf --模板引擎spring-boot-starter-web --springMVCmysql-connector-java --mysqllombokspring-boot-starter-tomcatspring-boot-starter-testmybatis-plus-boot-starter -原创 2021-11-29 21:22:43 · 697 阅读 · 0 评论 -
【Java主流电商秒杀方案】百万qps秒杀方案简述(文字版配代码、视频详解)20w商品,100W预约,前后端如何处理(令牌桶,redis 分片,商品分片,分布式锁,配置中心 Apollo、Nacos)
1. 需要解决的问题1. 高并发,重复刷接口 对服务器的负载冲击2. 高并发,带来的超卖,需要控制商品数量3. 高负载 下单速度和成功率的保障2. 正常秒杀流程1. 等待抢购(正常提前1周)2. 预约3. 等待抢购4. 抢购3 秒杀商品规模 预计预约人数(20W商品,预约100W人)20个实例4 主流秒杀方案4.1 针对预约人数过多,如何降低抢购时的压力通过给预约用户提前发放token,20w的库存,发30w个token把token放在用户cookie中1.有toke原创 2021-11-29 16:27:59 · 2755 阅读 · 0 评论