
《Java秒杀系统》
本专栏俗称“Java商城秒杀系统”,主要介绍了当前一些电商平台在举办一些商品秒杀、抢购活动时所涉及的相关业务流程,其中,主要包括“秒杀活动列表的展示”、“秒杀活动详情的获取”、“用户登录认证服务”、“高并发秒杀-抢购业务”,其对应的博客来源于“Java商城秒杀系统”视频教程
修罗debug
曾担任阿里大文娱事业部Java高级后端开发工程师,fightjava.com 创始人, 长期扎根于一线编码开发、系统架构设计与项目管理,拥有多年开发与管理经验,目前是一名互联网行业的创业者;
出版的书籍:《分布式中间件技术实战(Java版)》、《Spring Boot企业级项目开发-入门到精通》
51CTO学院、优快云学院、网易云课堂等教育平台知名讲师,教授学生上万人,拥有大量原创博客,博客访问量达百万人次;
追求技术,热爱分享,相信技术改变生活,技术成就梦想,一直在不断的学习和积累新的知识,秉承修罗之道,花名“阿修罗”(修罗debug)
展开
-
Java秒杀系统实战系列~构建SpringBoot多模块项目
摘要:本篇博文是“Java秒杀系统实战系列文章”的第二篇,主要分享介绍如何采用IDEA,基于SpringBoot+SpringMVC+Mybatis+分布式中间件构建一个多模块的项目,即“秒杀系统”!。内容:传统的基于IDEA构建SpringBoot的项目,是直接借助Spring Initializr插件进行构建,但是这种方式在大部分情况下,只能充当“单模块”的项目,并不能很好的做到“分工明确...原创 2019-07-15 10:09:46 · 950 阅读 · 0 评论 -
Java秒杀系统实战系列~整体业务流程介绍与数据库设计
摘要:本篇博文是“Java秒杀系统实战系列文章”的第三篇,本篇博文将主要介绍秒杀系统的整体业务流程,并根据相应的业务流程进行数据库设计,最终采用Mybatis逆向工程生成相应的实体类Entity、操作Sql的接口Mapper以及写动态Sql的配置文件Mapper.xml。内容:对于该秒杀系统的整体业务流程,相信机灵的小伙伴在看完第二篇博文的时候,就已经知道个大概了!因为在提供的源码数据...原创 2019-07-16 09:55:28 · 858 阅读 · 1 评论 -
Java秒杀系统实战系列~待秒杀商品列表与详情功能开发
摘要:本篇博文是“Java秒杀系统实战系列文章”的第四篇,从这篇文章开始我们将进入该秒杀系统相关业务模块的代码实战!本篇博文将首先从最简单的业务模块入手,即如何实现“获取待秒杀商品的列表以及查看待秒杀的商品详情”功能!内容:对于“待秒杀商品列表及其详情的展示”这一功能,我们将采用目前比较流行的mvc开发模式来实现!值得一提的是,这一功能模块涉及的主要数据库表为“商品信息表item”、“...原创 2019-07-18 09:38:06 · 808 阅读 · 1 评论 -
Java秒杀系统实战系列~整合Shiro实现用户登录认证
摘要:本篇博文是“Java秒杀系统实战系列文章”的第五篇,在本篇博文中,我们将整合权限认证-授权框架Shiro,实现用户的登陆认证功能,主要用于:要求用户在抢购商品或者秒杀商品时,限制用户进行登陆!并对于特定的url(比如抢购请求对应的url)进行过滤(即当用户访问指定的url时,需要要求用户进行登陆)。内容:对于Shiro,相信各位小伙伴应该听说过,甚至应该也使用过!简单而言,...原创 2019-07-21 10:40:17 · 621 阅读 · 0 评论 -
Java秒杀系统实战系列~商品秒杀代码实战
摘要:本篇博文是“Java秒杀系统实战系列文章”的第六篇,本篇博文我们将进入整个秒杀系统核心功能模块的代码开发,即“商品秒杀”功能模块的代码实战。内容:“商品秒杀”功能模块是建立在“商品详情”功能模块的基础之上,对于这一功能模块而言,其主要的核心流程在于:前端发起抢购请求,该请求将携带着一些请求数据:待秒杀Id跟当前用户Id等数据;后端接口在接收到请求之后,将执行一系列的判断与秒杀处理...原创 2019-07-22 20:47:16 · 6805 阅读 · 0 评论 -
Java秒杀系统实战系列~分布式唯一ID生成订单编号
摘要:本篇博文是“Java秒杀系统实战系列文章”的第七篇,在本博文中我们将重点介绍 “在高并发,如秒杀的业务场景下如何生成全局唯一、趋势递增的订单编号”,我们将介绍两种方法,一种是传统的采用随机数生成的方式,另外一种是采用当前比较流行的“分布式唯一ID生成算法-雪花算法”来实现。内容:在上一篇博文,我们完成了商品秒杀业务逻辑的代码实战,在该代码中,我们还实现了“当用户秒杀成功后,需要在...原创 2019-07-23 15:52:18 · 2213 阅读 · 0 评论 -
Java秒杀系统实战系列~整合RabbitMQ实现消息异步发送
摘要:本篇博文是“Java秒杀系统实战系列文章”的第八篇,在这篇文章中我们将整合消息中间件RabbitMQ,包括添加依赖、加入配置信息以及自定义注入相关操作组件,比如RabbitTemplate等等,最终初步实现消息的发送和接收,并在下一篇章将其与邮件服务整合,实现“用户秒杀成功发送邮件通知消息”的功能!内容:对于消息中间件RabbitMQ,想必各位小伙伴没有用过、也该有听过,它是一款...原创 2019-07-26 10:03:14 · 930 阅读 · 0 评论 -
Java秒杀系统实战系列~开发通用的发送邮件服务
摘要:本篇博文是“Java秒杀系统实战系列文章”的第九篇,在这篇文章中我们将继续完善秒杀系统中的核心处理逻辑,即“用户秒杀~抢单”的业务逻辑!本文我们将基于JavaMail服务,开发一个通用的发送邮件服务,用于发送邮件通知消息,并与上一篇章中已经实现的RabbitMQ异步发送消息的逻辑进行整合,彻底实现“用户秒杀成功后,异步发送邮件通知消息给到用户邮箱,告知用户尽快进行付款”的功能!内容:...原创 2019-07-30 09:56:32 · 1280 阅读 · 0 评论 -
Java秒杀系统实战系列~定时任务补充处理超时未支付的订单
摘要:本篇博文是“Java秒杀系统实战系列文章”的第十一篇,本篇博文我们将借助定时任务调度组件来辅助“失效超时未支付的订单记录”的处理,用以解决上篇博文中采用“RabbitMQ死信队列失效处理超时未支付的订单”的瑕疵!内容:上篇文章我们介绍了如何采用消息中间件RabbitMQ的死信队列失效处理超时未支付的订单,实战完毕之后,相信各位小伙伴对死信队列应该有了一个初步的认识以及使用。在该业...原创 2019-08-07 09:50:28 · 4890 阅读 · 6 评论 -
Java秒杀系统实战系列~RabbitMQ死信队列处理超时未支付的订单
摘要:本篇博文是“Java秒杀系统实战系列文章”的第十篇,本篇博文我们将采用RabbitMQ的死信队列的方式处理“用户秒杀成功生成订单后,却迟迟没有支付”的情况,一起来见识一下RabbitMQ死信队列在实际业务环境下的强大之处!内容:对于消息中间件RabbitMQ,Debug其实在前面的篇章中已经简单分享介绍过了,在这里就不再赘述了!在本文我们将采用RabbitMQ的死信队列实现这样的...原创 2019-07-31 10:00:16 · 3983 阅读 · 2 评论 -
Java秒杀系统实战系列~JMeter压力测试重现秒杀场景中超卖等问题
摘要:本篇博文是“Java秒杀系统实战系列文章”的第十二篇,本篇博文我们将借助压力测试工具Jmeter重现秒杀场景(高并发场景)下出现的各种典型的问题,其中最为经典的当属“商品库存超卖”的问题,在本文我们重现这种问题,并对问题进行分析!内容:一个正规的、声称能承受高并发请求的系统的背后应该经历了一些不为人知的经历,这个秒杀系统也是如此,一般而言,这些经历都是比较残酷的,在本文中我们将重...原创 2019-08-10 10:05:48 · 2086 阅读 · 0 评论 -
Java秒杀系统实战系列~数据库级别Sql的优化与代码的调整
摘要:本篇博文是“Java秒杀系统实战系列文章”的第十三篇,从本篇文章开始我们将进入“秒杀代码优化”环节,本文将首先从数据库级别Sql的优化入手,结合调整秒杀相关的部分核心代码,实现初步的优化!内容:上篇文章我们暴露出了“秒杀接口”在面对高并发请求的场景下所出现的“超卖”、“重复秒杀”等问题,并对相应的问题进行了分析,然后就没有然后了……(事了拂衣去!)问题既然落在我们的手里,那么...原创 2019-08-12 10:38:40 · 873 阅读 · 2 评论 -
Java秒杀系统实战系列~基于Redis的原子操作优化秒杀逻辑
摘要:本篇博文是“Java秒杀系统实战系列文章”的第十四篇,本文将借助缓存中间件Redis的“单线程”特性及其原子操作一同优化“秒杀系统中秒杀的核心业务逻辑”,彻底初步解决“库存超卖”、“重复秒杀”等问题。内容:对于缓存中间件Redis,相信各位小伙伴或多或少都有听说过,甚至实战过,本文我们将基于SpringBoot整合Redis中间件,并基于其优秀的“单线程”特性和原子操作实现一种“...原创 2019-08-15 09:56:10 · 3151 阅读 · 8 评论 -
Java秒杀系统实战系列~基于Redisson的分布式锁优化秒杀逻辑
摘要:本篇博文是“Java秒杀系统实战系列文章”的第十五篇,本文我们将借助综合中间件Redisson优化“秒杀系统中秒杀的核心业务逻辑”,解决Redis的原子操作在优化秒杀逻辑过程中出现的部分瑕疵。内容:Redisson,字如其名,是搭建在缓存中间件Redis的基础之上的一款综合中间件,除了拥有Redis本身提供的强大功能之外,还提供了诸如分布式锁、分布式服务、延迟队列、远程调用等强大...原创 2019-08-22 10:13:44 · 2364 阅读 · 2 评论 -
Java秒杀系统实战系列~基于ZooKeeper的分布式锁优化秒杀逻辑
摘要:本篇博文是“Java秒杀系统实战系列文章”的第十六篇,本文我们将继续秒杀系统的优化之路,采用统一协调调度中心中间件ZooKeeper控制秒杀系统中高并发多线程对于共享资源~代码块的并发访问所出现的并发安全问题,即用ZooKeeper实现一种分布式锁!内容:ZooKeeper,看到其名字,不由得联想至 Zoo + Keeper,即动物园的看管所!这个寓意用以表达的是一种统一协调管理...原创 2019-08-22 10:30:16 · 1138 阅读 · 5 评论