秒杀系列开篇文章,整理分布式微服务设计中,面对高并发场景的一系列潜在问题和处理思路。
前言
不论是日常工作还是大场面试中,分布式问题应该是每个程序猿要刻在基因里的意识。
在通过相关技术的学习和日常工作中的梳理之后,笔者希望以成体系的方式,把分布式微服务架构在面对高并发等场景下的各类问题和相关的处理思路,模拟并展现出来。希望能带给小伙伴们思考。
为了做这系列梳理,笔者采取了大家都熟悉的高并发场景:秒杀 + 积分,以此降低大家对于业务的理解门槛,更加专注于技术和问题本身的思考。
业务场景描述
万级用户参加一个商品秒杀活动,简化问题为:几件商品,库存 100 - 1000 不定,用户在几秒内参与抢购,不可超卖,但允许一定程度上卖不完。
成功秒杀下订单的用户,还可获取相应积分,1 元 = 1 积分。
需求拆解
- 数据库设计
- 系统设计
- 接口设计
- 压力测试
系统设计
库存系统、订单系统、积分系统
接口设计
查询、下订单、扣积分
压力测试
JMeter
业务场景技术分析
QPS 较高,涉及高并发场景
分布式请求,涉及分布式锁的应用
多系统交互,涉及分布式数据一致性问题
数据库 MySQL
缓存中间件 Redis
消息中间件 RabbitMQ
项目
本项目已在 Github 上开源,项目中已有足够的注释和相关文档,欢迎 Star、Fork、Follow,为本项目做出贡献者,我会请您喝咖啡呀~~
打赏