基于Springboot秒杀系统的设计
说个题外话:我开源了Java开发宝典到我的github:https://github.com/eson15/javaAll,欢迎star!也可以在文末左下角阅读原文进入。
下面进入正题:
先说说基本流程,就是提供一个秒杀接口,然后针对秒杀接口进行限流,限流的方式目前我实现了两种,上次实现的是累计计数方式,这次还有这个功能,并且我增加了令牌桶方式的lua脚本进行限流。
然后不被限流的数据进来之后,加一把分布式锁,获取分布式锁之后就可以对数据库进行操作了。直接操作数据库的方式可以,但是速度会比较慢,咱们直接通过一个初始化接口,将库存数据放到缓存中,然后对缓存中的数据进行操作。
写库的操作采用异步方式,实现的方式就是将操作好的数据放入到队列中,然后由另一个线程对队列进行消费。当然,也可以将数据直接写入mq中,由另一个线程进行消费,这样也更稳妥。
该系统的内容:
系统实现的技术:
系统的实现:
系统源码获取,可以加我微信领取
备注:源码
评论