Skip to content

Gs1mpleL/mall-swarm

 
 

Repository files navigation

mall-swarm

项目二次开发内容

  1. 通过Redis的bitmap进行用户每日签到,连续签到统计.
  2. 通过ThreadLocal加Aspect切面,对一次请求的用户信息进行存储本地的操作,避免每次都需要注入用户service,还需要传入id,才能查询用户信息,使得一次请求中所有使用用户信息的地方都直接从内存获取,不需要查数据库或者Redis,也减少了用户信息在方法之间的传递
  3. 购物车修改为纯Redis实现,购物车是一个重修改的业务,使用数据库实现,延迟会稍大,并且购物车信息可以在生成订单后永久取消,大部分场景并不需要长时间持久化存储,Redis的数据结构选择hash,因为购物车中每个item都要支持独立修改。
  4. 订单生成增加接口等幂性保证,生成订单连续点击两次,需要保证只有一次成功,但是就是要生成两个订单,也不能被认为是一个订单,使用生成订单的页面产生一个唯一Token,传递到后端,后段将其存入Redis,过期时间设置为订单自动取消的时间,只有来自同一个订单页面的点击,就会认为是重复点击。
  5. 使用Redis实现用户消费排行榜,支持日榜,月榜,可拓展
  6. 使用Redis配合切面,拦截器实现注解对方法限流
  7. 实现秒杀业务,考虑接口限流,接口隐藏,分布式超卖,商品预热,下单异步,接口等幂
  8. 实现基于lua脚本的令牌桶限流算法,支持接口模式与ip模式

一些流程图

截屏2022-08-20 20 27 15

截屏2022-08-20 23 34 37

公众号 交流 学习教程 后台项目 前端项目 码云

About

对Github开源项目mall-swarm二次开发~~

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 99.9%
  • Shell 0.1%