当前位置: 首页 > news >正文

面试篇-系统设计题总结

文章目录

    • 1、设计一个抢红包系统
      • 1.1 高可用的解决方案:
      • 1.2 抢红包系统的设计
      • 1.3 其他
    • 2、秒杀系统设计

这里记录一些有趣的系统设计类的题目,一般大家比较喜欢出的设计类面试题目会和高可用系统相关比如秒杀和抢红包等。欢迎大家在评论中评论自己遇到的题目,本篇文章会持续更新。
在这里插入图片描述

1、设计一个抢红包系统

抢红包系统其实也是秒杀类中的一个场景,抢红包的特点在于无法超售,下单中的超卖、少卖问题是可以允许的。但是对于红包,一旦用户抢到的钱比发出去的钱更多,那就是大问题了。

抢红包系统的特点:

  • 高并发场景保证系统的高可用
  • 不能超售,及不允许抢到的钱比发出的钱多。

1.1 高可用的解决方案:

  1. 负载均衡
  2. 限流
  3. 熔断、降级
  4. 隔离
  5. 超时重试
  6. 异步调用
  7. 使用缓存
    涉及高科用系统可以参考我之前写的这篇文章:如何设计一个高可用系统

1.2 抢红包系统的设计

参考文章:
https://jiajunhuang.com/articles/2023_01_31-red_envelope.md.html
https://juejin.cn/post/6925947709517987848
上面两篇文章写的很好,建议参考,这里总结一下该方案设计:
1. 分布式锁拦截 或者 mysql层乐观锁控制
2. 预分配红包,增加一个红包明细表

还有一种方案可以使用redis队列做存储,每次来抢pop一个红包,然后同时将这个红包再异步存储到库中。这里需要注意的就是如果pop完系统崩溃,可能造成redis数据丢了,或者mysql还没有存储到红包,该如何处理?
在这里插入图片描述

1.3 其他

红包分配算法其实也会常问,如何分配才能保证随机,这道题属于算法题,不属于系统设计题目,可作为延伸思考。
一般会使用二倍均值法
参考文章:https://juejin.cn/post/7080343105177665544

2、秒杀系统设计

秒杀系统的特点如下:

  • 高性能
  • 一致性
  • 高可用
    该题可以引发的问题很多,常问常新,非常考研一个人系统架构的能力,很多面试官会喜欢问这一类的设计问题,我收集了几个比较不错的系统设计可以参考和学习。
    如何设计一个秒杀系统1
    如何设计一个秒杀系统2
http://www.lryc.cn/news/392665.html

相关文章:

  • 如何摆脱反爬虫机制?
  • 68745
  • github仓库的基本使用-创建、上传文件、删除
  • [课程][原创]opencv图像在C#与C++之间交互传递
  • 科研绘图系列:R语言双侧条形图(bar Plot)
  • 计算机未来大方向的选择
  • AndroidKille不能用?更新apktool插件-cnblog
  • 非参数检测2——定义
  • iOS多target时怎么对InfoPlist进行国际化
  • TZDYM001矩阵系统源码 矩阵营销系统多平台多账号一站式管理
  • 你的 Mac 废纸篓都生苍蝇啦
  • 推出新的C2000™ F28P65x 实时微控制器,专为高效控制电力电子产品而构建(F28P650DH、F28P650DK、F28P650SH)
  • 使用Java实现分布式日志系统
  • Java 基础查漏补缺
  • 甲骨文首次将LLMs引入数据库,集成Llama 3和Mistral,和数据库高效对话
  • HumbleBundle7月虚幻捆绑包30件军事题材美术模型沙漠自然环境大逃杀模块化建筑可定制武器包二战现代坦克飞机道具丧尸士兵角色模型20240705
  • SQL 别名
  • 浅谈反射机制
  • 解决obsidian加粗中文字体显示不突出的问题
  • Shell echo命令
  • 级联目标检测:构建高效目标识别的多阶段策略
  • this指向问题以及如何改变指向
  • 基于.NET开源游戏框架MonoGame实现的开源项目合集
  • spring boot + vue3+element plus 项目搭建
  • linux之管道重定向
  • to_json 出现乱码的解决方案
  • Java接口和类
  • 前端文件预览汇总
  • 银河麒麟V10 安装tigervncserver
  • SKM Power*Tools 10.0