重庆菲斯克面经

这次面试被我严重低估了,一开始以为是纯流程面,随便乱问的。实际上事后复盘发现,人家还真是对着我简历上的东西问的。只是我自己没发现而已。

流程如下:

1、自我介绍。正常介绍

2、项目介绍。这里我介绍的很有问题,只介绍了纯业务。我事后复盘发现,需要三段式介绍。也就是业务介绍+项目架构+个人职责。此题不合格。

3、你们项目用的MySQL,在高并发请求下,会有什么瓶颈?

这里我直接回答的项目是低并发,没遇到。实际上虽然是低并发,我们项目依旧做了高并发支持。甚至我的个人职责中,负责编写的MySQL的Dockerfile中就做了连接池调优、主从复制、并发线程控制等手段。但我没想起来。

因此得出结论:面试官问的这个是我个人职责,不是我以为的随便问。

正确答案应该是这样:

连接数耗尽:每个请求都要占一个数据库连接,高并发下连接池打满,导致新请求等待或超时。可以通过连接池调优缓解。

锁竞争:大量并发写操作导致行锁/间隙锁竞争加剧,事务等待更久,甚至死锁。可缩小事务范围减少锁持有时间缓解。

磁盘I/O瓶颈:读写频繁,磁盘I/O成为瓶颈。可以通过读写分离缓解。

CPU飙升:大量查询和事务处理消耗CPU资源,导致整体性能下降。可通过限制并发线程数解决。

4、你们项目的RabbitMQ主要用来做什么?发送短信,并列举引入之前的发送短信失败问题。

5、怎么解决的短信失败?

我答得服务那里做重试,实际上面试官想听到我说的是死信队列+TTL的做法。这个依然是我简历里写的,RabbitMQ集群搭建相关联问题。

正确答案:

核心实现思路:死信队列 + TTL

在业务队列中,消费失败后,消息发到重试队列并设置TTL,该队列不绑定消费者,等TTL到期,消息自动进入死信交换机,之后再投回业务队列。这个流程需要重试交换机和重试队列的绑定键与死信交换机和业务队列的绑定键相同。之后再进行下一次重试。如果重试次数消耗完,就进入死信队列,将失败消息入库。

三个问题连续失败,加上面试本来预定就是20分钟,因此这里就挂了,后面开始流程:

6、空窗期解释(2年)

7、期望薪资、之前薪资、所在地、反问环节等流程。

#发面经攒人品#

相关推荐
晨米酱2 天前
AGENTS.md:Agent 的上下文策略层
面试·架构·agent
彧azz2 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
CoderYanger2 天前
A.每日一题:835. 图像重叠
java·开发语言·程序人生·leetcode·面试·职场和发展·学习方法
爱学习的执念2 天前
助力金九银十1000道软件测试面试题(功能、接口、自动化、WEB、APP.......)附答案
软件测试·面试
小的~~2 天前
银河麒麟V10 ARM部署TDengine(涛思)工业时序数据库安装与测试
面试·程序员创富
小刘在重生~2 天前
Oracle_day2 单行函数|组函数|分组|伪列|子查询|分页|多表连接
笔记·oracle·面试
Sam_Deep_Thinking2 天前
关于java final关键字的可见性
java·后端·面试·程序员
Rain的Java大神之路3 天前
如何快速上传10G文件
java·spring boot·redis·后端·mysql·spring cloud·面试
淡海水3 天前
13-04-面试-源码级深度追问链
数据结构·unity·面试·c#·游戏引擎·源码·il2cpp
小刘在重生~3 天前
Java Lock 显式锁案例|ReentrantLock 解决多线程安全问题(超详细实战)
java·笔记·面试