面试中遇到的设计题

1. 如何设计秒杀系统

前端:

a. 一些防刷单校验,拉长整个交易流程,起到一个削峰作用

b. 静态资源多CDN部署

c. 前端缓存,有些页面的切换,不需要调用后端接口

后端:

接口性能优化:使用缓存,异步,多线程,功能降级等手段

还有些高并发时保证系统稳定性的手段:扩容, 升配,限流,降级

还有是想做系统隔离/数据隔离的方案 这种成本很高。

2. 红包系统怎么设计

  1. 模型设计

红包池表,红包账户表,红包池表

  1. 怎么支持高并发?

高并发需要考虑这个并发是有多高?拿redis可支撑的写入速度作为分界线,8万/秒。

如果并发低于这个值?这个场景较好处理,使用redis作为主要的存储介质,需要使用lua脚本完成红包金额生成,红包扣减等动作。

如果高于这个值?可以考虑下吗几种方案?

一是. 使用消息队列,异步的方式,处理抢红包的请求,起到一个削峰的作用。配合的玩法,用户抢到红包后,需要一定的时间后才能打开红包。

二是. 将一个大红包均分成多个副本,每个副本分布在不同的redis节点上。再有一个前置的负载均衡器,可以将请求均匀的打在不同的节点上。解决单点瓶颈。

最后,为了保证系统的稳定,一定要做限流。预期外的流量,不要接受。

3. 怎么做一个唯一id的生成器

雪花算法

41位的时间戳 + 10位机器码 + 12位序列号

时间戳是毫秒级;机器码由用户指定可能有重复的风险;12位序列号的范围是0~4096;

4. 分布式限流怎么做

使用令牌桶。原理:算法以固定的速度向桶中存放令牌;桶有一定的容量,如果桶满了,则将新生成的令牌丢弃;有请求过来会消耗令牌。

相关推荐
晚安日记wanna2 分钟前
SSR 为什么不适合登录态从水合冲突到缓存串号
前端·react.js·面试
晚安日记wanna4 分钟前
压测 TPS 卡在 800CPU 只跑四成六步定位法
运维·面试·测试
晚安日记wanna12 分钟前
批量请求失败只弹一个 Toast面试官想听五层
前端·面试·架构
晚安日记wanna19 分钟前
TS const 类型参数一道面试题的四层追问
前端·面试·typescript
晚安日记wanna20 分钟前
大表 DDL 面试翻车现场Online DDL 为什么还会锁死业务
数据库·面试·架构
晚安日记wanna23 分钟前
MySQL 主从延迟别只答并行复制
数据库·面试·架构
SamDeepThinking30 分钟前
Java 17内存屏障:为什么需要,怎么用
java·后端·面试
CC数分34 分钟前
2026年金融数据分析岗位需要哪些工具?2027届秋招备考指南
面试·数据分析
ocean21033 小时前
2025-2026年C语言专题面试高频知识点洞察
c语言·面试·面试经验
letisgo54 小时前
JAVA 高级进阶18篇《生产级RAG:切分、检索、评估与Graph RAG全链路实战》
java·面试·检索增强·rag·graph rag