秒杀系统设计详解

前言

补充知识:(对应的Redis以及QPS可看我之前的文章)

秒杀系统的架构设计在笔试面试都是常考题型
要想达到秒杀系统的高性能、高可用以及一致性,对应的设计如下

1. 高性能

1.1 动静分离

秒杀过程中,页面不用每次都过分刷新再来秒杀
优化:对应将其整个页面的资源整体静态改造,通过静态缓存存储当前页面(对应网站页面将其静态资源缓存,动态资源静态化缓存),刷新的时候将其页面展示给用户。

缓存数据存放?

对应如何缓存,有以下策略。

缓存位置大致情况
客户端 浏览器秒杀系统下的高并发,如果浏览器不主动刷新页面会有错误
服务端 服务器将其大量连接动态计算,本身HTTP解析慢,容易占用CPU资源
CDN(推荐)将其静态的数据都存储在CDN中(本身擅长处理并发的静态文件请求)

本身CDN也是一大知识点,对应CDN如何设计合理(保证不失效,命中率高),可通过CDN的二级缓存(容量偏大可更好解决失效以及命中率)

整体页面如何刷新显示?

对应将其页面整体刷新有两种方式

方式简介大致情况
ESI(Edge Side Includes)主要在常见的HTTP代理(反向代理、负载均衡、缓存服务器、代理服务器)中使用代理服务器请求动态数据放到静态页面中
CSI(Client Side Include)简短的JavaScript函数或例程,包含在外部JavaScript文件中代理服务器只返回静态,异步js请求动态数据

1.2 热数据处理

所谓的热数据处理主要是头条消息、微博热搜、淘宝热点商品等(只能异步)

海量数据下的TOP N处理(对应的文章可看我之前的文章:海量数据处理的高频面试题分析
),成为热数据,加缓存提高命中率,防止击穿

以上的热数据是事中事后的,如何处理事前的热数据呢(节假日这种情况可增加对应热数据的缓存):

一般系统处理这种热数据的时候尽量跟业务逻辑层、上下游层面解耦化,防止大量影响(不过架构过多不好维护,尽量一个架构,通过区分不同架构、数据、用户、接口)

2. 高可用

为了达到高可用,对应流量进行削峰(mq系列)
关于mq系列,只有kafka文章(后续补充mq系列文章):kafka框架从入门到精通(全)

将其流量削峰,上中游对应层面进行削峰

  • 上游:
    延缓请求(对应在用户层面增加一些验证请求来减缓流量)
    mq消息队列、线程池加锁、nginx或者openresty限流
  • 中游:可通过代码层面的限流:java中常见的限流算法详细解析
  • 下游:数据库层面(建议限流靠近上游应用层,此方案不推荐)

3. 高一致

一个缓存失效导致整个Redis击穿或者是整体失效导致Redis雪崩

秒杀系统层面一般就是购物的时候下订单
可分为下单、付款、预扣等方式来减库存达到一致(代码逻辑先理清)

减库存方式优势劣势
下单不会出现已下单无法支付(直接操控数据库事务达到一致性)下了单不支付,导致其他人用不上
付款避免不支付的现象秒杀促销用户体验差,付了钱不一定是你的货物

预扣(将其以上两种方式结合),增加下单有效付款时间,超过时间订单释放。但是分阶段会有漏洞可循

实际应用中,为了达到超卖以及秒杀,有如下措施

  • 恶意下单不支付(多次不支付的用户拉入黑名单或者不减库存)
  • 避免超卖:加货、通过数据库的事务一致性、数据库字段设置为无符号(通过数据库下游或者事务的原子性,这样不会出现负数),甚至可以放入redis的缓存来管理

对应数据库层面

业务处理方式
高并发读分布式缓存或者LocalCache本地缓存。即使读出脏数据,在下单的时候在进行校验(写链路的时候在进行校验)
高并发写上游缓存加入分布式锁,下游增加redis数据库
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 5G移动通信系统设计与标准详解如下: 5G移动通信系统是一种新一代的无线通信技术,旨在提供比4G更快的数据传输速度、更低的延迟和更好的网络覆盖范围。5G标准是由国际电信联盟(ITU)和3GPP组织共同开发的,包括三个主要方面的设计和标准。 首先,5G移动通信系统设计了一种新的物理层技术,即毫米波通信技术。这种技术利用高频段的无线电波来传输数据,可以实现更高的传输速度和更大的带宽。然而,毫米波通信技术存在传输距离较短和穿透能力较差的问题,因此5G系统还设计了多小区间干扰协调和波束成型等技术来提高网络覆盖范围和信号质量。 其次,5G移动通信系统设计了一种新的核心网络架构,即面向服务的架构(SOA)。这种架构将网络划分为核心网、边缘计算和终端设备,可以根据需求实现灵活的网络配置和资源分配。此外,5G系统还设计了网络切片技术,可以将网络资源进行虚拟切割,为不同应用场景提供个性化的网络服务。 最后,5G移动通信系统设计了一套新的调制解调器(MIMO)技术,用于提高无线信号的传输效率和抗干扰能力。采用MIMO技术,可以在同一频率上同时传输多个数据流,从而实现更高的数据传输速率和更好的频谱利用效率。此外,5G系统还引入了新的多址技术和信道编码技术,进一步提高了系统的容量和性能。 综上所述,5G移动通信系统设计了新的物理层技术、核心网络架构和调制解调器技术,以满足更高速度、更低延迟和更好覆盖范围的需求。这些设计和标准的实施将推动无线通信技术的发展,为未来的智能化社会提供更好的通信服务。 ### 回答2: 5G移动通信系统是第五代移动通信技术,具有更高速率、更低延迟和更大容量等特点。其设计和标准制定过程分为以下几个步骤。 首先,确定5G的技术方向。5G技术方向包括高频段利用、大规模多天线、超高密集部署、云化网络架构等。通过研究各项技术方向,制定了5G系统的总体设计目标。 其次,确定5G的技术需求。5G移动通信系统需要满足更高的速率、更低的延迟、更多的设备连接和更大的网络容量等需求。通过分析需求,为5G系统制定了具体的技术规范和性能指标。 然后,进行系统架构的设计和优化。5G移动通信系统采用分布式云核心网架构,实现网络功能的虚拟化和软件化。同时,引入边缘计算和网络切片等技术,提供个性化的服务和更好的用户体验。 接下来,确定5G的无线接入技术。5G采用了更高频率的毫米波和子6GHz频段,并采用了大规模MIMO技术和波束赋型等技术手段,提高了系统的容量和覆盖范围。 最后,制定5G的标准和规范。5G标准由国际电信联盟(ITU)、第三代合作伙伴计划(3GPP)等组织负责制定。这些标准包括无线接入技术、核心网架构、接口协议、安全机制等方面的规范,为5G商用提供了技术支持和保障。 总之,5G移动通信系统的设计与标准制定是一个复杂而系统的过程,涉及到技术方向、需求分析、系统架构设计和无线接入技术等领域,最终形成了统一的标准和规范,推进了5G的商用化进程,并为未来智能社会和物联网的发展奠定了基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

码农研究僧

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

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

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

打赏作者

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

抵扣说明:

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

余额充值