secKill项目 --- 总结 + 推荐阅读顺序 + 源码地址
先上源码地址:https://github.com/HermanCho/seckill
项目总结
本项目基于慕课网的秒杀项目,源代码的参考很多来源于以下博客
商城秒杀系统
改进的地方:(主要是前两个)
消息可靠性传输的实现,包括投递、持久化、消费 + 幂等性, 3 + 1 的实现
redis预减库存的库存补充方案
改进了
@AccessLimit
的使用整合了log4j2,方便维护
进行了springboot版本升级整合。
源项目的版本太低,导致rabbitMQ很多问题,踩了不少坑。
交换机Direct模式改进为Fanout模式,效率更高。
验证码不合理,简单注释掉了相关的逻辑。毕竟抢单的时候,还要输验证码,体验极差
项目的完善思路:
秒杀不一定不允许重复秒杀,应该分两个表,一个唯一索引,另一个不限制
支付订单、取消订单的接口
其实这业务挺关键的,不过没时间写,后续有机会再实现吧
前端对未支付订单,启动计时器,到点触发取消订单接口。
前端对进行请求的订单,需要设置超时器。若超时仍未得到相关响应,就停止并提示。防止异常情况占用大量资源。
开启定时任务,扫描数据库,加载当天开启的秒杀任务,key有效期一天。
否则内存肯定不够用。(粒度可细到每小时)
各种key的过期时间设置。
推荐阅读顺序:
相关博文也可以从分类专栏进入。
- secKill项目 — 可靠性传输的实现 及 易错点总结
- secKill项目 — Redis预减库存的存在的问题 及 库存补偿
- secKill项目 — 限制同一用户只有一个请求生效
没找到地方用分布式锁…但项目中还是实现了相关代码
Redis分布式锁的注意点总结 + 参考代码
附踩坑记录:
secKill项目 — @AccessLimit用法的问题
RabbitMQ 消费者如何获取生产者设置的correlationId + 得到CorrelationId为空的解决方案 + 源码解析
RabbitMQ 消费者确认auto 和 manual 模式对异常的处理区别(含重试、requeue的影响)
log4j2 输出指定单一日志级别(不是该级别及其以上!!!)
如果项目有相关问题,或文章有误,欢迎指出或讨论。
secKill项目 --- 总结 + 推荐阅读顺序 + 源码地址相关推荐
- 阅读 ANDROID 源码的一些姿势
日常开发中怎么阅读源码 找到正确的源码 IDE是日常经常用的东西,Eclipse就不说了,直接从Android Studio(基于IntelliJ Community版本改造)开始. 我们平时的And ...
- 阅读 Android源码的一些姿势
日常开发中怎么阅读源码 找到正确的源码 IDE 是日常经常用的东西,Eclipse 就不说了,直接从 Android Studio(基于 IntelliJ Community 版本改造)开始. 我们平 ...
- 阅读Android源码的一些姿势
2019独角兽企业重金招聘Python工程师标准>>> 前面吐槽了 有没有必要阅读Android源码,后面觉得只吐槽不太好,还是应该多少弄点干货.需要说明的是,Android每个系统 ...
- 新手程序猿编程实战项目推荐【附源码下载】
为你精选 ! 知识更新那么快,跟随不上怎么办? 碎片信息那么多,选择恐惧怎么办? 别担心,我用心挑选了几个实战项目. 长期推送干货.职场心得,让你收获满满. 话休絮烦,点击关注,长期推送编程干货! 仿 ...
- 大牛教你这样阅读android源码
当你去面试时,经常会被问到,你是否阅读过android系统源码?那系统源码该如何阅读呢? 下面,让我们来看看大牛们是如何阅读的(来自知乎的牛人们http://www.zhihu.com/questio ...
- 下载和阅读Android源码
目录 一.如何下载AOSP 1.全量下载 2.单个下载 目录结构 二.如何阅读AOSP 1.要阅读哪些源码 2.阅读源码的顺序和方式 2.1 阅读顺序 2.2 阅读方式 3.用什么工具来阅读 3.1 ...
- webuploader 怎么在react中_另辟蹊径搭建阅读React源码调试环境支持所有React版本细分文件断点调试...
引言(为什么写这篇文章) 若要高效阅读和理解React源码,搭建调试环境是必不可少的一步.而常规方法:使用react.development.js和react-dom.development.js调试 ...
- 手把手带你阅读Mybatis源码(三)缓存篇
点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 前言 大家好,这一篇文章是MyBatis系列的最后一篇文章,前面两篇文章:手把手带你阅读M ...
- idea调试源代码c语言,IDEA阅读spring源码并调试
目标:搭建起Spring源码阅读和代码调试跟踪的环境,顺便建立一个简单的Demo,能够调试Spring的源代码 本节,主要介绍一下Spring源码阅读和调试的相关环境搭建,并使用MVN创建一个非常简单 ...
最新文章
- AutoLISP将多段线各个端点坐标写入外部文件
- Winform中在FastReport的PreviewControl预览控件中对report控件模板中控件值进行修改
- qlabel文本改变信号_周明:NLP进步将如何改变搜索体验
- python做成绩表_自学Python笔记:用Python做成绩分析(2)
- Expression Blend 学习视频下载
- Jenkins Gitee 实现持续集成CI/CD工具【免费、推荐】
- 用HashMap去重
- 抖音春晚红包百亿互动量级背后,火山引擎浮出水面
- Oracle 高 Version counts 问题说明
- ubuntu下gedit查看txt中文乱码解决办法
- 分组 php库,ThinkPHP分组下自定义标签库实例
- ②五元物联网芯片点亮led 庆科EMW3060 , 运行alios- blink程序
- UVa 10192 - Vacation amp; UVa 10066 The Twin Towers ( LCS 最长公共子串)
- 机械键盘按键重复_如何修复机械键盘上的卡住或重复键
- Android新浪微博实训报告,新浪微博产品简析
- vue中js转换火星坐标以及真实坐标
- portal无线认证服务器,无线AC配置portal认证功能portal 认证服务器问题
- Java pta练习题 第一章
- 为什么说python适合ai_为什么Python被认为是AI和机器学习的最好语言?
- 以太猫游戏主合约(六)