面试中遇到的设计题

1. 如何设计秒杀系统

前端:

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

b. 静态资源多CDN部署

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

后端:

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

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

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

2. 红包系统怎么设计

  1. 模型设计

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

  1. 怎么支持高并发?

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

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

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

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

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

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

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

雪花算法

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

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

4. 分布式限流怎么做

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

相关推荐
找方案4 小时前
AI+人力资源:AI招聘面试的兴起与争议
人工智能·面试·职场和发展
测试老哥9 小时前
接口测试的测试用例应该怎么写?
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
CC数分11 小时前
2026年HRBP岗位硬性要求和加分项
面试·职场和发展·数据分析
2601_9626802211 小时前
数据分析面试常考的SQL题和业务题分别是哪几类?
sql·面试·数据分析
黄敬峰11 小时前
一文搞懂 Agentic RAG:用 LangGraph 打造会思考的智能检索架构
面试
晚安日记wanna12 小时前
SSR 为什么不适合登录态从水合冲突到缓存串号
前端·react.js·面试
晚安日记wanna12 小时前
压测 TPS 卡在 800CPU 只跑四成六步定位法
运维·面试·测试
晚安日记wanna12 小时前
批量请求失败只弹一个 Toast面试官想听五层
前端·面试·架构
晚安日记wanna12 小时前
TS const 类型参数一道面试题的四层追问
前端·面试·typescript
晚安日记wanna12 小时前
大表 DDL 面试翻车现场Online DDL 为什么还会锁死业务
数据库·面试·架构