秒懂百万级流量,高并发秒杀项目架构设计(附图文)

文章探讨了秒杀场景中的并发处理、并行概念,重点介绍了优化接口响应时间的方法,如异步处理、使用Redis进行库存预扣减和解耦,以及分布式设计减少接口处理时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 前置知识

什么是秒杀?

秒杀:生活中很多场景,例如抢优惠卷、大促活动、商品秒杀、抢话费卷等,都是秒杀的具体实现,秒杀通俗的说就是很短时间内,处理大量的请求

1.1. 并发与并行

提到秒杀不难想到高并发的发生,再补充下并发与并行 

并行:在多核处理器的情况下,多个任务可以在同一时间点上同时发生

并发:多个任务在同一个时间段内执行(时间段可以是1s,500s,10ms)

1.2. 如何优化接口的响应时间?

一个能抗住百万级,千万级并发流量的压力的秒杀项目,离不开强大硬件层面和软件层面的支撑,我们这里主要是软件层面的设计,而作为后端开发人员,我们的主要任务是优化接口的响应时间,那么如何优化接口的响应时间呢?可以从以下方法中考虑

  1. 能异步就异步
  2. 减少 IO(统一查,统一写)
  3. 尽早 return
  4. 加锁粒度尽可能小
  5. 事务控制粒度尽可能小
  6. ......

2.秒杀架构

做大促/秒杀/抢购尽量减少接口的处理时间

秒杀的主要业务就是扣减库存,写订单表,这些都是 IO 操作,很耗时间,而用户的请求我们希望立刻回收,所有可以将秒杀分成两个程序(部署到两台机器上),接入层在秒杀开始之前同步 db 的数据到高性能的 redis,用 redis 做库存预扣减,再用 mq 解耦、连接,接入层不做具体业务的 IO 操作,可以立刻回收用户的请求(线程),在服务层去做具体的业务 IO。

redis 做去重用户:实现业务一个人针对一个商品只能抢一次

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PJP__00

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值