项目实战_秒杀
jcsyl_mshot
点滴生活,水落石出。
展开
-
Java 高并发商城秒杀
课程介绍1.课程技术点前端:JQuery、Bootstrap、Thymeleaf 后端:SpringBoot、Mybatis、JSR303 中间件:Redis、RabbitMQ、Druid2.秒杀实现分布式会话 商品列表页 商品详情页 订单详情页面 系统压测缓存优化:页面缓存、url 缓存、对象缓存等 消息队列:针对DB 抗不住巨大并发量,使用RabbitMQ 异...原创 2018-06-11 20:26:50 · 2432 阅读 · 0 评论 -
实现秒杀功能
1.数据库设计商品表 订单表 秒杀商品表(活动太多,商品表将很难维护,单独秒杀商品表)页面设计商品列表页 商品详情页 订单详情页前端实现1.编写Dao 层,实现在数据库中商品查询 1.编写Service层,实现获取商品的列表信息 3.编写Controller 层,实现不同业务逻辑对应下的商品列表,详情获取商品列表页:首先获得用户信息,如果用户信息为空代表尚未登陆...原创 2018-07-14 21:47:18 · 3060 阅读 · 0 评论 -
页面优化技术
并发瓶颈在数据库,减少对数据库的访问,就是加不同粒度的缓存。 最大粒度优化是页面缓存,最小的是对象缓存对象。页面缓存+URL缓存+对象缓存1.页面缓存,针对商品列表页面1.从缓存中取缓存页面 2.缓存中没有,从数据库中取数据,渲染到我们的html 中,并且将html保存到redis 数据库中。(缓存的时间应该不能够太大,设置为60s) 3.返回html2.url 缓存...原创 2018-07-19 09:35:38 · 607 阅读 · 0 评论 -
实现登陆功能——用户登录设计
用户表字段: 用户ID 用户密码 用户名 salt 头像 注册时间 上次登陆时间 登陆次数 id password nickname salt head register_date last_login_date login_count两次MD5 1.用户端:PASS = MD5(明文+固定Salt) //...原创 2018-07-12 15:16:17 · 14364 阅读 · 0 评论 -
安全优化
1.秒杀接口地址隐藏在商品详情页请求秒杀开始之前,先去请求接口获取秒杀地址 1.秒杀接口改造,带上pathvariable 参数,以便秒杀时候进行验证 2.新增生成地址的接口,将秒杀地址存放到redis 数据库中(key 为用户名组合商品名)2.数学公式验证防止机器人,分散用户请求 1.添加生成验证码的接口 2.在获取秒路径时候,对验证码进行验证 3.ScrptEngine ...原创 2018-07-23 22:24:14 · 223 阅读 · 0 评论 -
demo 样例框架结构
Controller 中相关处理器映射器需要识别的路径,然后调用Service 中相关业务函数。 Service 服务需要访问数据库进行操作时需要调用Dao 层与数据库操作的相关函数。 Dao 层与数据库进行操作,提供不同访问数据库方法,包括事务的访问。在进行Redis时候操作处理稍微复杂一点。 1.读取redis 配置信息到 redisConfig 类中。 2.创建RedisPool...原创 2018-07-12 10:21:29 · 415 阅读 · 0 评论 -
秒杀接口优化
0.秒杀优化瓶颈优化前: 1.判断库存数量访问mysql 2.判断是否下单访问redis 3.减库存 访问MySQL 4.下单 访问两次MySQL减少数据库的访问 1.系统初始化,把商品库存数量加载到Redis 2.收到请求,redis 预减少库存,库存不足,直接返回 (将大量请求拒之门外),库存足够进行第三步 3.请求入队,立即返回结果排队中 4.请求出队,生成订...原创 2018-07-23 12:18:09 · 206 阅读 · 0 评论 -
项目快速搭建一——springBoot环境搭建,Thymeleaf页面模板
1. Spring-boot 环境的搭建遇到问题1:创建好maven project 时候项目上出现红色感叹号。解决方案:一般该问题由于jar 包出现问题,可以打开eclipse 中Markers 会记录错误描述,发现是相关jar 包没有下载完全出现错误,删除本地仓库中不完整jar 包,然后 右键项目 –>Maven–>update project . 将重新下载相关jar 包...原创 2018-06-28 21:56:58 · 670 阅读 · 0 评论 -
JMeter 压测
1.接口压测每秒钟的并发量,每秒钟可疑的请求量 1.测试计划 右键添加线程组(设置线程数(并发数),循环次数) 2.线程组 右键 添加配置元件 ,http 请求默认值(协议,服务器名称,端口号) 3.线程组 右键 sample http 请求 【压测接口,请求方法,路径】 4.线程组 右键 监听器 聚合报告。2.Jmeter 自定义变量第3步:测试获取用户信息的接口,只访问...原创 2018-07-16 22:25:18 · 283 阅读 · 0 评论 -
项目框架搭建三——集成Jedis +Redis 安装 +通用缓存key 封装
由于是需要测试我们秒杀,项目,这里打算安装虚拟机,在虚拟机上进行linux 系统安装。1.下载安装虚拟机 可以到官网http://www.vmware.com/cn 上去下载,也可以到 baidu 云盘搜索,下载VMWare WorkStation 10.0.2。VMWareWorkstation 虽然不是免费软件,但是序列号很容易在网上找到,没有必要用破解版的。2.虚拟机中安装Cent...原创 2018-06-30 16:19:19 · 264 阅读 · 0 评论 -
项目框架搭建二——集成Mybatis+Druid 访问数据库
1.Mysql 的下载和安装 http://dev.mysql.com/downloads/mysql/ 参考安装教程: https://www.jianshu.com/p/6c1b62b002f42.Mysql 客户端下载和安装 百度网盘链接(为安装包,直接运行EXE文件即可):http://pan.baidu.com/s/1o7OwjFG 注册码:NAVH-WK6A-DMVK-D...原创 2018-06-30 11:14:25 · 215 阅读 · 0 评论 -
秒杀接口优化——rabbitMq 配置
减少数据库的访问 1.系统初始化,把商品库存数量加载到Redis 2.收到请求,redis 预减少库存,库存不足,直接返回 3.请求入队,立即返回排队中 4.请求出队,生成订单,减少库存 5.客户端轮询,是否秒杀成功。1.安装RabbitMQ1.下载安装erlang. http://www.erlang.org/downloads/20.1 通过secureCRT 上传到 /...原创 2018-07-21 19:24:42 · 698 阅读 · 0 评论