Skip to content

秒杀系统 springboot + redis + mysql + rabbitMq

Notifications You must be signed in to change notification settings

keyvin-wei/instant-kill

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

instant-kill

秒杀系统

springboot + redis + mysql + rabbitMq

测试地址:www.keyvin.cn

秒杀接口优化:目的减少数据库访问

(1)系统初始化时把库存数加载到redis中;
(2)内存标记减少redis访问
(3)收到请求redis预减库存,redis库存0时直接返回秒杀失败,大于0时进入第4步;
(4)MQ入队,立即返回排队中;
(5)MQ出队,生成订单、减少库存;
(6)客户端轮询,是否秒杀成功(异步了:请求时不知道成功失败,另起查询才知道)。

MQ交换机四种模式:direct、topic、fanout、headers

GET/POST区别:GET是幂等的,获取服务端数据,执行多次结果不变,POST向服务端提交数据

秒杀安全优化:

(1)秒杀接口地址隐藏,接口地址动态从后台获取
(2)验证码,分流1s分到10s
(3)接口防刷,限制ip访问频率,用redis缓存过期

登录功能:

(1)明文密码两次MD5加密
(2)JSR303参数校验,全局异常处理
(3)分布式session,用户放到redis,取时根据token取redis用户

页面优化:页面静态化前后端分离浏览器自动缓存,静态文件压缩,使用CDN

测试:jmeter模拟多用户秒杀,模拟高并发

About

秒杀系统 springboot + redis + mysql + rabbitMq

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published