谷粒商城实战(030 业务-秒杀功能1)

Java项目《谷粒商城》架构师级Java项目实战,对标阿里P6-P7,全网最强

总时长 104:45:00 共408P

此文章包含第311p-第p314的内容


介绍

秒杀系统应该独立部署



8点开始秒杀 10点结束


秒杀价格 和 多少件(库存)


新建项目(p312)



加redis

加远程调用 openFeign

引入common并且排除seata

配置各种信息

使用@EnableDiscoveryClient开启注册功能,保证可以被服务中心发现

这里报错,找不到公共配置里的数据源,这里排除掉DataSource就行

秒杀流程

可以提前一天将需要秒杀的数据添加到缓存中,降低对服务器压力的影响

这里使用定时任务功能 上一张支付宝对账也需要使用到定时任务功能

害怕redis压力大 可以先发到mq,mq压力不大


流行的定时任务框架quartz
可以用java原生的java.util.Timer类也可以用spring支持的

整合quartz定时任务

这里年spring不支持,用前六个就行

7/5 代表第7秒的时候之后每隔5秒执行一次

*/5代表启动的时间之后每隔5秒执行一次


这里也可以使用一个cron在线生成器

在线Cron表达式生成器


@EnableScheduling开启定时任务

@Component放在容器中

spring原生Scheduling和quartz的区别


中间差了4秒 这里是阻塞的

解决方式

这里的线程池设置的线程数只有1 所以会阻塞

切记:这里有些版本好使,有些不行

异步任务

要开启@EnableAsync加上@Async 这两个注解确实可以实现异步,已测试

它们的源码位置





相关推荐
一只努力的微服务1 分钟前
【Calcite 系列】将 INTERSECT 转换为 EXISTS
java·calcite
向往着的青绿色1 分钟前
编程式事务,更加精细化的控制
java·开发语言·数据库·spring·性能优化·个人开发·设计规范
共享家95276 分钟前
Redis背景知识
数据库·redis·缓存
ホロHoro13 分钟前
数据结构非线性部分(1)
java·数据结构·算法
沉下去,苦磨练!25 分钟前
实现二维数组反转
java·数据结构·算法
桦说编程33 分钟前
实现一个简单的并发度控制执行器
java·后端·性能优化
Spring AI学习42 分钟前
Spring AI深度解析(11/50):异常处理与容错机制实战
java·人工智能·spring
qq_12498707531 小时前
基于协同过滤算法的在线教育资源推荐平台的设计与实现(源码+论文+部署+安装)
java·大数据·人工智能·spring boot·spring·毕业设计
总是学不会.1 小时前
[特殊字符] 自动分区管理系统实践:让大型表维护更轻松
java·后端·数据库开发·开发
WongLeer1 小时前
Redis 学习笔记
redis·笔记·学习·redis缓存·redis发布订阅