美团二面面经
美团-到店-平台技术部-4.1二面
因为我有两段大厂实习,所以没问八股,全程拷打实习,并围绕实习提问场景题,无手撕,全程1h20min。希望能给有日常实习的友友们一点帮助,并求求好运。
1.介绍百度实习,并让介绍亮点
2.你刚刚提到了你们这个部门业务最看重吞吐量,高并发与稳定性。你在思考业务时是怎么考虑并实现这三个特性的。(吞吐和并发这个跟业务相关,不多说了。稳定性主要是1.集群,2.线上监控+捞日志)
3.为什么你要自己编写一个单机cache?后来为什么又换成了MQ?(单机cache配合负载均衡是可以实现流量削峰,但是这个在极端情况下还是会打满cache造成业务挂掉,所以使用上云了的MQ作为分布式中间存储,这样下游服务的运行速度可以通过编辑MQ消费速度来决定,做到了速度可控)
4.为什么使用MQ做流量削峰而不是redis?(很多,除了黑马点评中讲过的一些基础以外,最重要的是当生产速度大于消费速度的时候会造成消息堆积,从而造成redis大key。并且redis常用于缓存,其内存是很宝贵的,大量用作中间消息存储会导致其他缓存业务效率下降等等)
5.你提到了高并发,你们的线程数量与集群数量是多少?(我们是微服务设计,根据服务是IO密集还是计算密集型线程数量与集群数量有所不同……)
6.针对百度实习中的一些细节详细拷打(ps:实习这块一定要写自己真正做过的事,我之前实习经历小吹过一波,结果被淘天面试官拷打麻了)
7.介绍B站实习,并介绍亮点
8.拷打RPC
9.假如当下你的client与server各有1000台机器,你需要每个都将其注册到服务发现中吗?
10.如果让你设计一个RPC通讯模块,你会设计为中心化的还是去中心化的?为什么?
11.假如目前RPC调用下游服务,发现超时了,你该怎么排查?(网络,下游服务运行状况,encoder/decoder)
12.你刚刚提到了编解码,你了解哪些编解码?如果当下让你选择一款编解码算法作为RPC中编解码算法,你会怎么选择?(我说了JSON,proto这两个算法,然后说了下我考虑的几点1.编解码是否会造成数据丢失;2.编解码后数据大小,毕竟是网络通信嘛,数据太大会阻塞IO;3.算法复杂度)
13.我看你B站是C端的,我问你下假如我目前让你写一个面向C端的接口,主要功能是访问下游服务获取数据并将之返回给前端。说下你在这设计过程中会考虑哪些细节?(首先是安全性,即鉴权;接着是可用性,即下游访问失败怎么办,重试还是返回兜底方案;然后是实时性,根据qps大小以及业务需求看看是否需要用到缓存;再然后是RPC请求字段的相关协商,这个需要与下游服务提供者协商好RPC中req与resp的字段;最后是幂等性一致性等考量,由于这是一个查询请求,数据操作是安全的,所以一致性幂等性要求不高,但是假如用户在短时间内反复快速请求后台,这个也是要考虑到的,比如可以先过滤在执行业务)
14.假如你上线了一个业务,你该怎么维护它的?
15.实习中遇到的一些中间件使用,线程并发等问题详细拷打,但大多时候主动权在我手上(这也是实习的好处,相比于很多项目烂大街了,实习项目面试官一般都没接触过,所以大多数时候可以把方向往自己会的地方引),所以回答的还行。
16.反问
全场全程拷打实习+场景题。面试官看上去就是一个在互联网干了很多年的大佬,问的问题都很刁钻,感觉底裤都被扒干净了。实习这块确实要好好准备呀,求好运,求offer
#美团##美团面试##美团二面#