美团面经(系统开发工程师)
找师兄内推的是到店-餐饮,但是好像被酒旅捞起来面试了。
一面(2019.08.27)
- 自我介绍+简单聊了下项目业务
- session共享你怎么实现的?session和cookie的区别?
- 你选择用Redis实现消息队列?能详细说下吗?
- 其他的消息队列有了解过吗?
- 你说到RabbitMQ,消息确认机制怎么做的?你知道broker起哪些作用吗?
- 如何保证消息幂等性?(说着说着网断了,重连后就跳过这块,感谢校园网的神助攻)
- Redis的数据类型了解吗?并说下你用过的命令
- 为什么Redis读取数据快?
- 系统发生故障了,Redis的数据怎么办?(从持久化扯了会)
- 主从复制、一致性哈希(回答的不是很好)
- 介绍下七层模型
- HTTP和HTTPS有什么不同?
- GET 和 POST 区别
- 数据库的隔离级别,MySQL怎么解决幻读问题的?
- B-Tree 和 B+Tree的区别?B+Tree的优势
- 联合索引、最左匹配原则
- 算法题:二分查找
- 聊了下别的,你最近在看什么书?(当然是找工作的哇!)
- 你有什么想问的?
二面(2019.08.29)
- 自我介绍+介绍项目
- 你项目中数据库表是怎么设计的,数据库三范式知道吗?
- 介绍下数据库的锁,你在项目中是怎么用的?
- 索引有哪些实现方式?说说他们的优缺点
- MySQL一般用的什么索引?介绍下......为什么不用 Hash索引?
- 聚簇索引和非聚簇索引,能说下吗?
- 微博上某个大V突然发个什么结婚啊离婚的声明,经常挂掉,是吧?你有什么好的措施来预防这个问题呢?(这里我就是瞎扯......Redis,消息队列啥的乱说一通)
- 你怎么保证Redis的高可用性呢?(我是从持久化和集群这块说了些自己了解的东西)
- 你怎么让消息队列里的消息被消费成功,不被重复消费?
- 你项目中怎么实现消息队列的?你了解一些原理,为什么不用Kafka、RabbitMQ这种消息队列?
- SpringBoot 有哪些优势?
- Spring中Bean的生命周期,了解么?
- 让你设计一个类似Spring的框架,你会从哪些方面考虑(Spring和SpringBoot真的是盲区)
- 浏览器输入url 到页面显示,中间发生了哪些事情,尽可能详细。
- ARP知道么?客户端发出请求,到服务器响应,怎么确定是哪个服务器?(让说下寻址过程)
- 算法题:数组中出现次数超过一半的元素
- 你有什么想问我的吗?
三面(2019.08.30)
- 你先自我介绍,我看看简历
- 简单聊了下项目,为啥做这个?
- 前面写了哪些算法题,简单说下
- 那我们写个简单的,二叉树层次遍历?(结点类定义、你如何确定队列的最大容量)
- 你平时用过美团吗?有没有遇到过哪些问题?
- 在高峰期,想保证买家尽可能在半小时收到外卖,你有什么优化思路?
- 你最熟悉的基础知识是哪块?(厚着脸皮说了对数据库原理稍微熟悉点,感觉要被逐个击破)
- 数据库的基本原理,你知道多少说多少。(从事务特性、隔离级别、InnoDB引擎、索引几个方面说了下)
- 有没有用过分库分表等优化?能介绍下数据库集群吗?(我也不知道自己怎么就扯到了反向***和一致性哈希)
- 你能简单介绍下一致性哈希是怎么做的吗?一致性哈希算法的优势在哪?
- 你之前面过哪些公司?(说了字节跳动、拼多多、贝壳、猿辅导)你了解这些公司有哪些不同吗?(业务呗~瞎扯呗)
- 如果让你选择,你会怎么考虑呢?
- 你有什么想问我的?(确认了下是酒旅事业群,只有北京岗)
这三次面试后,我的感受就是,尽可能在自己熟悉的知识点上多扯些相关东西,尤其遇到开放性问题、设计优化类问题,哪怕说错了也不要紧,怎么想就怎么说,不然冷场会更尴尬。因为一般情况下,一轮面试的时间控制在40-50分钟的样子,写题可能会占用10~15分钟。如果前面先问知识点,能在熟悉的知识点上多扯,就相当于压缩了考察其他部分的时间,这样的话,出错的概率就低了。希望能对牛油们有所帮助!