美团到店 后端暑期实习(四面结束 04.19重新编辑)
昨天收到的二面通过消息,因为已经有了别的 offer,所以还在考虑中,仅分享下面试经验
-----------------------
原以为二面结束后收到的通知是 hr 面,结果是我天真了,上周二结束的 4 面,第 3 面开始流程就被转到别的部门了,完全没有任何交流反馈,大无语
一面(03.16)【一面面了我一个半小时,结束后头都昏了】
1.自我介绍+面试官介绍部门业务 (5 min)
2.项目相关(40 min 深挖项目,具体的我不太记得了,我就把我项目里面的难点全列一下,基本都涉及到了)
(1)缓存和数据库的一致性问题
(2)整体项目架构的介绍
(3)哈希一致性算法的优势,虚拟节点的作用,与别的哈希方式的对比
(4)可用性设计:限流、超时、隔离怎们设计的
(5)local cache 的设计(这是一个很重点问的地方,我自己做了个性化的设计)
(6)乐观锁和悲观锁的设计与选型
(7)RabbitMQ 怎样保证可靠性(持久化、消费端autoACK+map确认、生产端应答)
3.数据库(30 min)
(1)索引(聚簇索引、非聚簇索引)以及底层数据结构
(2)怎样处理高并发场景?(通过锁解决 写+写并发,通过无锁化MVCC解决 读+写 并发)全都展开详细说了,这里不多赘述
(3)利用索引查询的原理,覆盖索引,联合查询,为什么使用B+🌲结构(其实这些问题本质上就是为了减少磁盘 I/O 的次数,要深刻理解)
(4)MySQL 有缓存吗,怎么缓存查询的?
(5)现场设计一个死锁的场景(我这是脑子已经有点懵了,没完全想出来,面试官说其实很简单,回去再想想)
4.Redis(5 min)
(1)Redis 的数据类型有哪些,对应的底层数据结构都有什么?
(2)详细介绍一下 string 类型的底层数据结构(简单动态字符串)
5.网络(5 min)
(1)https 的原理以及建立完整连接的全过程
(2)CA 证书的内容有什么?(这个真不知道。。)
6.算法(5 min AC)
leetcode239. 滑动窗口最大值
二面(03.23)【1 h】(二面面试官老哥人很 nice,引导性很强)
1.自我介绍 + 和面试官聊了会儿天(5 min)
2.项目(30 min)
(1)动静隔离怎么做的
(2)分布式锁的设计细节,问的非常细,有一个很小的地方口误讲错了,面试官立即就察觉并追问,如果不是自己做的根本答不出来
(3)限流算法了解哪些?(令牌桶和漏桶算法)这两者有什么区别?
(4)RabbitMQ 怎样保证可靠性(又问了一遍)
(5)Redis 和 RabbitMQ 分别在项目中什么部分发挥了作用?
(6)你的这一些列可用性设计(尤其是local cache)是适用于和中场景的,怎样选型的(这里其实考察你对项目的思考)
(7)遇到了什么坑,说说?(讲了下超时控制中的坑)
3.网络(15 min)
(1)http、tcp 分别在七层网络中的哪层
(2)哪些应用层协议使用 tcp,哪些用 udp
(3)为什么 tcp 是三次握手,两次不行吗?(我在这里引申了很多,面试官当场表示答得很好很完整)【这里推荐一本书《web性能权威指南》】
4.算法(2 min)
一道 easy 题,我还装作没做过的样子哈哈
5.反问
聊了下能入职的时间和技术栈(了解到我可能要转技术栈)
聊了下上海的疫情(希望赶快好起来吧)
03.31 收到邮件二面通过,约 hr 面
---------------------------------------------------
04.19
编辑一下,原先以为两轮技术面,结果上周面完四面了(全技术面)。。。
从三面开始是别的部门的流程(存储服务)
现在情况应该是没 hc 了,就流程转来转去,一直面。。。
现在还没收到意向的可能要注意一下了。很可能就是没 hc 了。
以我的经验看来美团这边流程是一周一个反馈,如果超过一周,那就是在无限泡池子,和今年大行情有关系,hc 实在太少了