快捷搜索: 王者荣耀 脱发

java秒杀系统解决方案

一、前端

1、动静分离,将静态资源放到第三方云服务中进行CDN加速,减轻秒杀时的带宽压力,比如阿里云、七牛云等。 2、点击秒杀按钮后,记得将按钮禁用。 3、使用验证码恶意防刷。 4、商品的详情页可以使用页面静态化技术提高响应速度   有两种方式,一种是使用nginx对页面进行缓存配置,一种是直接利用浏览器端缓存,两种差不多,相比之下后一种其实更科学。

二、网关

1、网关一般在微服务中用来做认证鉴权以及限流操作,这里在秒杀场景中就是使用限流算法,对用户秒杀请求实现限流和服务保护。 2、限流算法如redis限流、nginx、hystrix等,实际工作中使用最多的还是令牌桶算法,可以基于这个算法自己写一个注解,也可以使用Google工具类已经实现的RateLimter。

三、服务端

1、通过MQ消息队列进行下单处理 2、version版本号+1实现的乐观锁机制解决超卖问题 3、redis缓存商品库存解决超卖问题 4、数据库自带的行锁机制 5、结合redis对商品id加lock锁解决超卖问题

四、测试

使用Apache的jmeter压测工具,根据测试结果不断优化。

五、服务器

增加服务器 nginx负载均衡

经验分享 程序员 微信小程序 职场和发展