【面经】8月30日 美团/到家/二面/1h20min

自我介绍

博客主要是做自己学习做总结是吧?

Java:

sycrhonized 和 reentrantlock 区别

公平与非公平是如何实现的?(理解不深,猜的,底层有优先队列)

举一个例子去说明,非公平锁是如何工作的?

AQS 是什么?数据结构除了 state 还有什么?

单向链表和双向链表是什么区别?

为什么有了双向链表还要有单向链表?二者的使用场景?

threadlocalmap 中,有强引用、弱引用。为什么要设计弱引用?解决什么问题?

什么时候会用到线程池?(要提高效率)

从使用层面讲讲线程池的注意事项。

核心线程数、最大线程数的区别?

如果一个项目用到了线程池,发现其中的数据一直在被丢弃。定位思路是什么?

你在阿里期间有没有遇到过类似的问题,有没有快速解决的方案?不需要排查代码的?

阿里内部有没有对线程池做一些公司级别的组件封装?

trace 了解吗?

实习

系统设计:

如何理解接口幂等性?从读和写两个角度去说明如何保障这一点?(读:默认幂等。写:唯一 id、数据库唯一键。)

如果是并发场景,唯一 id 不一定有用。怎么办?(分布式锁)

在写的过程中,如何用乐观锁的方式保证数据强一致性?(表里加一个版本号)

通过消息执行扣款操作,消息可能丢失导致最终扣款不成功。如何保证最终一致性?(重试;重试失败时写 mysql、通过同步组件去消费)

如果你有 1000w 数据都要去消费。如何保证最终这 1000w 单都是成功的?这个其实是各个公司都会遇到的问题。(不太清楚)

如果我现在是一个处理流程分 3 步,中间一步失败了。我如何保证最终 3 步的一致性?这个也很常见,比如网络超时、服务挂了。(记录失败操作,通过日志恢复)

接口请求量突然增高,有哪些保护措施?(nginx、接口限流、同步转异步、redis、消息队列、mysql 优化)

如果一个接口性能突然变差了,如何排查这个问题?(服务器 cpu、内存;机器变少了)

操作层面上,一二三步应该怎么做?说的大概的就行。(不太熟,说着说着还是说到细节了。。。大概就是 ① 先定位服务范围,② 查看机器 cpu、内存占用情况,③ 查看日志 ④ 借助一些平台查看各个中间件的使用情况、包括报警信息)

如果短期定位不到问题怎么办?如果能定位到问题又怎么办?(不管是哪种,都要进行回滚。如果定位到了,拉上运营、开发等人员快速分析原因)

如果我有 700 台机器,回滚成本很高,怎么办?(代码里做灰度开关,快速服务降级)

设计题:

如果我现在有 60w 骑手,对它们进行保险公司的投保,如何保证在 1 个小时内完成,并且不能重复、不能遗漏?(说的比较乱。。。多机器处理、线程池保证时效性;通过 redis 存 id 保证不重复;失败异步线程重试)

如何保证投保数据最终能写成功?(redis 做持久化)

数据库一般分为哪些部署模式?(只知道个主从复制)

一般都是主从复制的,主库写、存库读。如果同步数据比较慢,导致数据不一致。如何把主从延迟控制在可接收的范围内?(写速度 > 读速度,尽可能减少主库的请求频次)

这个投保的需求,我要求你 10min 执行完,能不能不修改代码实现这个功能?(把一些控制任务并行出发的数量配置到配置中心)有不有什么现有的工具能做到这一点?(配置中心,面试官说限流器 。其实这里我理解的是不管多少任务,都能在指定时间内完成,也就是不限制流量的情况下尽可能保证效率,所以就说通过配置数量实现。但是面试官的意思是,同一批任务,我去控制它完成的时间,也就是不保证效率,而是控制请求频次,避免下游服务被打挂了。)

反问:

运营组的主要工作?(履约、定价结算、平台治理,尽可能避免三方在交易过程中出现的纠纷问题。)

需求方是谁?(C 端、B 端,不同业务线、不同的管控诉求,站在整个平台的视角去治理)

主要和算法团队合作是吧?(是)

主要的核心工作和难点是什么?(各种差异化业务,如何抽象出一套逻辑,用一套通用的平台去应对)

反反问:

其他城市可以考虑吗?

对你期望的工作岗位,有什么要求吗?

技术氛围:① 我们团队每周五会有技术分享 ② 研发基本功,代码 CR、单侧、代码规范都是从我们团队产出的

基架、业务、数开、侧开,你倾向于哪一种?

#秋招##美团##面经#
2025届实习&秋招面经 文章被收录于专栏

2025届实习&秋招面经

全部评论

相关推荐

美团 到店 (n+4)*15.5,无签字费
点赞 评论 收藏
分享
评论
点赞
3
分享
牛客网
牛客企业服务