关注
7. 100万张代金券,要把代金券发给上亿的用户,你会怎么设计这个系统?
其实就是一个库存扣减的问题,如果是为了保证库存扣减的准确性,我们设计的一个链路最好不要太长和复杂。同时也不考虑把库存放在redis里,因为redis中的异步复制和持久化机制可能会导致数据不一致的问题。所以我想的是直接操作数据库进行扣减,然后引入一个消息队列作为一个削峰的作用避免数据的访问量过高。引入消息队列的话就还需要考虑到一个消费的幂等性处理。所以整个链路应该就是用户点击领取代金卷的时候,先把用户id投递到消息队列中,然后我们后端服务器执行一个消费,消费逻辑就是开启一个数据库事务(先尝试在一张用户表中插入一条整个用户的记录——利用用户id是唯一键的特性,如果插入成功了再执行扣减库存的操作),事务提交成功了再响应用户。
缺点:整个系统处理高并发请求的时候响应会比较慢。优点:保证了库存扣减的强一致性。
其实整个取舍就是CAP理论中的C和A的取舍吧.
查看原帖
点赞 评论
相关推荐
03-10 16:37
蚌埠坦克学院 Java 点赞 评论 收藏
分享
牛客热帖
更多
- 1... AI-Agent 面试题汇总 - 大模型篇1.4W
- 2... 百度后台开发实习一二三面面经1.0W
- 3... 字节后端一面7038
- 4... 字节跳动 后台开发 一面6060
- 5... 转转一面(二面挂)5850
- 6... 面试官视角聊聊:AI大模型岗从业务面到HR面全流程5662
- 7... 26年 如何快速入门大模型应用开发(个人认为的最快路线)5605
- 8... 我怕自己努力了这么久,最后还是毕业即失业4867
- 9... 腾讯日常实习一面面经(2027暑期向)(有点非常规。。。)4692
- 10... 滴滴AI agent开发日常实习面经4628
正在热议
更多
# 你感受到金三银四了嘛? #
31116次浏览 326人参与
# 25届网易互娱暑实进度 #
99059次浏览 768人参与
# 今天你投了哪些公司? #
54597次浏览 1145人参与
# 26届的你们有几段实习? #
169917次浏览 1099人参与
# 春招 / 实习投递,你最焦虑的一件事 #
29785次浏览 661人参与
# 米哈游笔试 #
537757次浏览 981人参与
# Tplink求职进展汇总 #
206301次浏览 948人参与
# 虽然0面试,但今天___,夸夸自己 #
2622次浏览 78人参与
# AI项目实战 #
2731次浏览 125人参与
# 为了实习逃课值吗? #
69089次浏览 536人参与
# 如果给AI员工评绩效,我的答案是…… #
4279次浏览 102人参与
# HR问:你期望的薪资是多少?如何回答 #
82909次浏览 712人参与
# 今年找实习到底有多难? #
9094次浏览 98人参与
# 27届求职交流 #
42526次浏览 867人参与
# 大城市找工作会更容易吗 #
61971次浏览 390人参与
# 哪一刻你对工作祛魅了? #
9697次浏览 106人参与
# 找工作,你都让AI帮你做什么? #
2662次浏览 105人参与
# AI时代下,你的岗位要求有什么变化? #
4671次浏览 99人参与
# 26届求职交流 #
21905次浏览 539人参与
# 签约/解约注意事项 #
887489次浏览 4716人参与

