[草稿]秒杀场景设计

[TOC]

概述

常见的秒杀场景,包括:

整体思路

缓存与限流

分享一个电商秒杀活动中限流器的例子,在电商的秒杀活动中,为了扛住前端对数据库的超大流量冲击,一般使用两种方案来保护系统,一个是缓存,另一个则是限流

redis 计数器实现限流

缓存这个容易实现,只需要在数据库前加一层缓存服务,而对于限流来说,最简单的可以使用 Redis 的计数器来实现限流功能

具体来说,假设需要对某个接口限定流量为 5000 qps,即每秒钟访问的次数不能超过 5000。那么可以在一开始的时候设置一个计数器 counter 为 5000,并且过期时间为 1s,即 1s后计数器失效。每当一个请求过来的时候,counter 的值减 1,判断当前 counter 的值是否等于 0,如果等于,则说明请求次数过多,直接拒绝请求。如果 counter 计数器不存在,则重置计数器为 5000,开始新一秒的接口限流,注意并发情况下计数器需要加锁。

mysql 分片实现限流

读写分离

分库分表

隔离级别

技术方案

秒杀表设计

秒杀参数优化

Copyright © www.sqlfans.cn 2024 All Right Reserved更新时间: 2022-11-22 16:33:44

results matching ""

    No results matching ""