4、场景题&系统设计题很简单,直接背套路!

hello大家好,我是达同学,一个在大厂工作三年的Java后端工程师。

这是我们6篇文章的第四篇:场景题&系统设计篇。

其实我认为场景题是最简单的,虽然它是开放题,但是在有限的面试时间里,可以真正深究的场景并不多。这里我们还是要回到面试官的视角,看看通过场景题面试官到底想考察什么:

  1. 面试者系统设计方面的经验和知识储备,这需要面试者对场景又一些提前的了解和思考,这里我们的解法很简单,背套路!
  2. 面试者的沟通交流能力,场景题其实是和面试官互动最多的场景,你需要问清楚面试官的场景,并且不断对细节提问,这一点是很加分的,这代表你对场景有很明确的思考。当然,在面试过程中一定要注意的一点是:问有质量的问题。这块也会在最后一篇专门来说。
  3. 这里还有一点面试技巧。其实面试官问的场景题基本都是他在工作中遇到的问题(相信我,面试官不敢也不会问自己不清楚的场景,因为这样面试官很难判断你回答的价值),所以在前面的面试中,你需要提前了解你面试的部门具体在做什么。尤其是B端和C端,这在场景题上有非常大的帮助!,作为即在B端又在C端工作过的后端开发,我对此感受非常深刻。
  4. 如果是C端,那么高并发就一定是要考虑的重点
  5. 如果是B端,那么系统的领域模型是更加重要的

好了,前面说了很多,那么到底有哪些套路呢?下面直接上内容:

1. 商城秒杀:

a. 依赖的中间件:网关、分布式缓存、消息队列、限流、数据库、TCC等

b. 需要考虑的点:缓存预热、缓存与数据库的一致性方案、降级、熔断、削峰

c. 加分点:蓄洪与事后泄洪

2. 排行榜(微信步数等)

a. 依赖的中间件:网关、redis sorted set、数据库等

b. 需要考虑的点:并发、数据库排序

c. 加分点:有些排行榜可以考虑在前端/客户端做,比如:排序数据量不大/排序场景很固定,面试时提到这点很加分。

3. 红包系统

a. 依赖的中间件:网关、分布式缓存、消息队列、数据库、TCC等

b. 需要考虑的点:并发、红包如何拆分、读写分离、异步化

c. 加分点:红包核对等

4. 类微博的feed流系统

a. 依赖的中间件:网关、数据库、缓存、消息队列等

b. 需要考虑的点:并发、实时推送、消息推拉模式、数据库设计

c. 加分点:根据用户活跃场景采用推+拉模式

5. 消息系统

a. 依赖的中间件:网关、数据库、缓存、消息队列、冷热库存储

b. 需要考虑的点:如何收发消息(推/拉),消息如何聚合(多条消息聚合成一个通知提醒)

c. 加分点:按照场景存储消息(点赞/私信/广告),冷热库

上面列举的五个场景,在网上有非常多的博客,大家自行百度吧。学会这几个场景的系统设计题,大部分场景题一定可以轻松pass,即使不在这五个场景里,知识也是通用的。只要认真学习完5个场景,你的场景设计能力一定会有非常大的提升。我就是这么慢慢学过来的~

另外,大家看这5个场景依赖的中间件,有没有发现其实都很雷同?其实这就是所谓的场景设计的通用能力!所以少年,吃透上面这5个场景吧!以后就再不用怕做不出场景题啦。

楼主本硕北邮计算机,在BAT某大厂工作三年。后续会持续和大家分享Java技术和职场经验,欢迎关注我,有问题随时找我交流!

喜欢的同学欢迎关注我的专栏,11月底前会更新完:

6篇短文速通Java面试》https://www.nowcoder.com/creation/manager/columnDetail/j3Kwpj

#java##23届找工作求助阵地##24届软开秋招面试经验大赏##面试题刺客退退退#
6篇短文速通Java面试 文章被收录于专栏

hello大家好,我是达同学,一个在大厂工作三年的Java后端工程师。结合我过往的面试经验以及作为面试官的经历,我发现Java技术体系的博客有很多,但却少有博主和大家分享如何系统性的准备面试大厂Java岗位。 这个专栏用我会用6篇短文讲完Java面试的大纲,相信看完文章的同学一定会对Java如何复习了然于胸,祝每位同学都能马到成功,拿下心仪offer! Java面试辅导加vx:hello_da1

全部评论
收藏的同学点点赞呀,创作不易
3 回复 分享
发布于 2023-11-25 16:07 浙江
大哥想问问 1.中秒杀系统能否用rocketmq中事务消息实现能满足蓄洪,泄洪吗? 3. 红包核对这个场景我不明白是干嘛的? 5.聚合消息确实是很困难,完全不会,可否给点思路呢。
1 回复 分享
发布于 2023-12-04 23:15 广东
感谢~
点赞 回复 分享
发布于 2025-09-23 16:57 上海
mk
点赞 回复 分享
发布于 2025-08-18 01:21 四川
mark系统设计
点赞 回复 分享
发布于 2025-03-11 10:41 北京
4.中消息系统缓存,如果消息是一个富文本情况下,我应该是缓存数据还是渲染数据以后的文本呢?我该怎么样去权衡这方面内容
点赞 回复 分享
发布于 2023-12-04 23:27 广东
国企银行相关的工作,什么样的项目写简历里比较好呢(担心商品抢购/秒杀之类的系统会不会千篇一律)
点赞 回复 分享
发布于 2023-11-28 14:20 北京

相关推荐

04-08 13:30
门头沟学院 Java
继续来分享下最近的面经~欢迎友好讨论,信息共享1. 实习拷打2. 项目拷打3. 介绍一下 ReAct 框架的具体实现流程,Agent 在什么情况下容易陷入思考死循环(Thought Loop)?4. 如果 Agent 调用的底层运维 API 发生超时或 5xx 错误,你在工程上是如何实现容错机制的?5. Redis 的数据结构有哪些?在 Agent 对话上下文缓存中,你会选择哪种结构?6. 线程池的参数如何设置?7. 解释一下分布式事务的 2PC 和 TCC,在 Agent 执行多步跨系统指令时如何保证一致性?8. 类 Manus 的 Agent 需要频繁操作环境,如何实现一个高可用的任务调度器,要考虑哪些方面?9. MySQL 的隔离级别有哪些?什么是幻读?10. TCP 三次握手和四次挥手流程?为什么断开连接需要等待 2MSL?11.  如果要实现一个代码执行沙箱,你从后端角度如何限制 CPU、内存和网络访问?12. 什么是协程?13.为什么 Agent 后端通常采用异步非阻塞模型?14. Kafka 为什么高吞吐?在处理 Agent 异步回调信号时,如何保证消息不丢失?15. 有了解过Agent 的记忆吗?mem0这个记忆框架知道不16. 向量数据库的原理是什么?RAG中的rerank?16. HTTP 与 RPC(如 gRPC/Thrift)的区别是什么?为什么字节内部通信多用 RPC?17. LRU 缓存18. K 个一组翻转链表
点赞 评论 收藏
分享
京东科技 保险业务感觉这个面试官还是很和善的,比起字节的一直冷着脸,没有反馈,体验好多了1 自我介绍2 讲一个参与度最深的实习经历,详细讲解2.1 这个实习项目的架构,技术选型是怎么考虑的2.2 Redis存的数据是哪方面的2.2 Redis数据是提前预热的吗2.3 与MySQL一致性如何保证(说用的延迟双删,介绍了一下其他方案)2.4 延迟双删先删哪个再删哪个3 Java常用数据类型3.1 int 1跟Integer 1用==是否为true3.2 equal()与hashcode()方法的关系3.3 哪个类重写过hashcode()方法 (回答String)4 final关键字作用5 String的常用方法有哪些5.1 其他对象调用toString()方法转成String场景有哪些6 抽象类与接口的区别6.1 项目中你用哪个更多7 list set map的区别7.1 你传递参数时一般用map还是自己定义对象7.2 list跟数组如何转换8 线程池你是用Java提供的还是Spring提供的?8.1 线程池参数,挑几个重点的讲一下如何配置9 Spring设计思想9.1 Spring的代理说动态代理还是静态代理9.2 除了Spring还见过哪些单例模式10 如何使用事务的10.1 你的事务拦截哪些异常10.2 事务传播机制10.3 事务失效的场景11 MySQL常用的数据类型11.1 主键用int 还是long12 MySQL索引分类13 联合索引(a,b,c),where b时是否会走索引,where c,b,a呢14 如何优化慢sql,实际项目中通常在哪些方面优化AI相关15 是否用过ai开发16 IDE的大模型一般都是国外的,都是收费的,你怎么处理(?这个问题好奇葩,没搞懂这个想问什么,我回答有的像trae cn免费,有的实习公司报销,有的像cursor之前有无限续杯)17 使用ai编程如何保证ai尽可能完成你的需求18 提示词你怎么给?(这个我也不太会,说网上有模板)19 是否用过rule,给ai约束20 讲了一个项目中用ai的例子21 如何看待ai的发展,有什么瓶颈22 现在大模型都是语言模型,除了语言模型还可能会出现什么模型(?不懂,随便瞎扯了几句)23 open claw你了解吗,怎么看23.1 是否自己部署过24 未来规划,是否读研反问环节面试表现,有何建议: 提升表达能力,不要紧张,不然有些话可能没表达出来实习工作: 商品运费险,外卖食安险,准时宝等面试流程: 两轮技术面一轮HR面,一到两天出结果
风间琉璃617:今天十点邮件约二面许愿oc
听到哪句话代表面试稳了O...
点赞 评论 收藏
分享
评论
74
259
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务