09小节:用户兑换秒杀优惠券功能(二)
作者:程序员马丁
note
热门项目实战社群,收获国内众多知名公司面试青睐,近千名同学面试成功!助力你在校招或社招上拿个offer。
开发兑换/秒杀优惠券功能(二),元数据信息:
- 什么是牛券oneCoupon:https://t.zsxq.com/pAWgS
- 代码仓库:https://gitcode.net/nageoffer/onecoupon —— 申请项目权限参考上述牛券项目链接
- 章节难度:★★★☆☆ - 较难
- 视频地址:文档先行视频次之
©版权所有 - 拿个offer-开源&项目实战星球专属学习项目,依据《中华人民共和国著作权法实施条例》和《知识星球产权保护》,严禁未经本项目原作者明确书面授权擅自分享至 GitHub、Gitee 等任何开放平台。违者将面临法律追究。
内容摘要:技术架构并非一成不变,合适的业务场景配合对应的架构往往能发挥最大的效用。对于类似订单或 12306 抢票这样的场景,每一笔数据都必须精确无误,这种情况下如果不依赖数据库保障一致性,单纯依赖 Redis 缓存会存在一定的不足。但对于用户优惠券场景,偶尔多发一张优惠券问题不大,因此没必要将压力过多转移到数据库,毕竟数据库是宝贵的资源。通过消息队列进行异步解耦,不仅可以减少数据库的压力,还能提高系统的吞吐量,肯定更为合适。
课程目录如下所示:
- 业务背景
- Git 分支
- 开发基于消息队列秒杀逻辑
- 文末总结
业务背景
在上一节中,我们介绍了通过数据库扣减完成用户兑换优惠券的逻辑,这种方式虽然稳妥,但性能有所不足,因为主流程的操作是同步执行的,导致响应时间变长,吞吐量下降。在本章节中,我们通过引入消息队列进行异步解耦,主流程仅同步操作 Redis,后续的数据库耗时操作则交由消息队列消费者来执行,从而提升整体性能。
Git 分支
20240910_dev_acquire-coupon-v2_seckill_ding.ma