美文网首页技术分享
浅谈秒杀系统设计思路

浅谈秒杀系统设计思路

作者: Lugton | 来源:发表于2020-09-11 15:54 被阅读0次

秒杀场景

例如双11、618

涉及问题

  1. 高并发:时间短,瞬间用户量
  2. 超卖:卖出量多于库存
  3. 数据库超负荷:数据库甚至其他业务挂掉,导致404

设计思路

1.微服务

服务单一职责,以微服务的设计思想设计系统,每个服务职责、功能单一,并采取分布式的部署方式。每个服务建立单独的数据库。

2.缓存

  • 读请求:秒杀的典型的读多写少的业务,可以利用缓存分担数据库压力
  • 写请求:将数据库的库存数据转移到Redis缓存中,所有减库存的操作在Redis中进行,再通过后台进程把redis中的用户秒杀请求同步到数据库中。
  • Redis集群:主从复制、读写分离、哨兵监控
  • 防止超卖:利用Lua脚本(类似Redis事务,有一定的原子性,不会被其他命令插队,可以完成一些Redis事务性的操作)。把判断库存和扣减库存的操作都写在脚本中,使得库存为0后都return false

3.流量削峰

将请求放进消息队列,然后一点点的消费去修改库存,达到流量削峰的效果,防止一次性的大量请求导致服务器挂掉

4.负载均衡
拓展机器,使用Ngnix进行负载均衡,分担流量压力,同时还可拦截恶意请求。

5.限流
一旦产品卖光,前端直接秒杀结束,避免后续无效的请求

相关文章

  • 浅谈秒杀系统设计思路

    秒杀场景 例如双11、618 涉及问题 高并发:时间短,瞬间用户量 超卖:卖出量多于库存 数据库超负荷:数据库甚至...

  • 架构 - 收藏集 - 掘金

    浅谈秒杀系统架构设计 - 后端 - 掘金秒杀是电子商务网站常见的一种营销手段。 不要整个系统宕机。 即使系统故障,...

  • 秒杀系统设计思路

    昨天遇到这个问题,发现自己临时总结的不是很好,所以现在想重新整理一下思路。 分析一下问题: 类似淘宝那种做秒杀系统...

  • 秒杀系统设计思路

    秒杀场景:比如选课系统。当然并发不多,只是举个例子。1、每个老师只有40个名额,但是有4000个学生并发来选某一个...

  • 秒杀系统设计思路

    一、限流与降级 客户端限流 按钮置灰 js控制每秒只能发送一个请求 站点层限流 1. Nginx限流 Nginx官...

  • 秒杀系统设计总结(持续更新中。。)

    一、前言 秒杀系统其实是一个比较复杂的设计,文章先介绍设计秒杀系统的思路脉络和设计系统的原则。后面章节再详细介绍使...

  • 彻底弄懂 “秒杀系统”

    今天我们一起来看看,一套秒杀系统在架构设计上需要有哪些考量: 秒杀场景的特点 系统隔离的设计思路 客户端设计 代理...

  • 秒杀(二)

    背景:最近看自己以前写的博客。有一个有关秒杀的博客:秒杀系统设计思路[https://www.jianshu.co...

  • 浅谈秒杀系统的设计

    业务描述 现在电商企业一大把,除了某宝、某东等大鳄,还有各种街、某说、某会、没有品等创业明星,以及苏宁、国美等传统...

  • 用Redis轻松实现秒杀系统

    秒杀系统的架构设计 秒杀系统,是典型的短时大量突发访问类问题。对这类问题,有三种优化性能的思路: 写入内存而不是写...

网友评论

    本文标题:浅谈秒杀系统设计思路

    本文链接:https://www.haomeiwen.com/subject/vhtbektx.html