重庆菲斯克面经

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

流程如下:

1、自我介绍。正常介绍

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

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

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

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

正确答案应该是这样:

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

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

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

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

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

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

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

正确答案:

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

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

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

6、空窗期解释(2年)

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

#发面经攒人品#

相关推荐
IT规划师6 小时前
编程术语中的同步与异步:从"等不等"到工程取舍
后端·面试
考研保研资料分享11 小时前
2022环境工程保研北师大:三校专业追问、论文贡献与择校复盘
面试
Rain的Java大神之路14 小时前
面试官让你把 LLM、RAG、Agent、MCP 串起来讲清楚,90% 的 Java 工程师当场露馅
java·后端·面试
狂师14 小时前
我开发了一款免费开源的测试开发刷题学习网站
面试·开源·测试
利威尔xu1 天前
Go IM 源码实战(14):本地缓存快 3000 倍,失效却难 10 倍
后端·缓存·微服务·面试·golang
利威尔xu1 天前
Go IM 源码实战(13):30 个会话只有 2 个红点,未读数错在三条路径
redis·后端·微服务·面试·golang
IT规划师1 天前
面试中被嘲笑Token放在redis里,该如何应对?
redis·面试
1M551 天前
AI应用后端工程(03):回答输出一半就断了:AI 流式接口如何定义成功与失败?
python·面试·职场和发展·计算机专业·agent开发
师夷长技以自愈1 天前
第 5 讲:Function Calling 做强制结构化输出——把「交卷」伪装成 tool
面试