滴滴python面试题一
现场三轮技术面试+一轮HRBP面(4小时5分钟)
- 聊项目,画项目架构图,画一个用户从发起请求到接收到响应,中间经过哪些服务,每个服务做什么事情的流程图,讲数据库设计。
- 处理过线上OOM问题没有,如何处理的?
- 遇到过线上服务器CPU飙高的情况没有,如何处理的?
- 线上有没有遇到其他问题,如何处理的?
- 对线程池的理解,项目中哪个地方使用了,如何使用的,用的Excutor框架中的哪个实现类,为什么用这个
- 对CAS的理解,CAS带来的问题,如何解决这些问题
- volatile底层、synchronized底层、锁升级的过程、MESI
- 对MySQL索引的理解、对组合索引的理解、索引的最佳实践
- 分布式锁的实现、对比Redis分布式锁 & ZK分布式锁
- 唯一ID如何实现的,Snowflake实现原理,Snowflake有哪些问题,如何避免根据订单号可以推算出今天的订单量
- 如果线上一个功能是用栈结构实现的,使用过程中要注意哪些问题,为什么
- 怎么理解线程安全
- 怎么理解接口幂等,项目中如何保证的接口幂等
- 怎么理解微服务,服务如何划分,可以从哪几个方面去划分,为什么这样划分,微服务带来了哪些好处,哪些坏处,如何看待这个问题
- 如何理解网关,网关带来的好处和坏处,如何解决
- Hystrix功能 & 在项目中怎么使用的 & Hystrix怎么检测断路器是否要开启/关闭 &Hystrix实现原理
- 怎么理解命令模式和观察者模式,手写一个观察者模式或者命令模式的代码,策略模式也行
- 掌握哪些设计模式,常用哪些,项目中如何使用的,为什么用这个,不用那个,手写一个线程安全的单例模式
- 如何设计一个秒杀系统
- 如果我现在就是要实现每秒10w请求,不能熔断限流,如何去设计
- 假设现在双十一零点,大量下单请求,如何对这些订单进行分库分表,为什么
- 服务A调用服务B中一个接口,服务B调用服务C中一个接口,如何实现若服务B响应服务A成功,则服务C一定响应服务B成功,需要考虑系统性能问题
- 递归使用中有什么需要注意的地方,递归写法一般可以用什么去替换
- 有两个表,table a,table b,写SQL查询出仅在table a中的数据、仅在table b中的数据、既在table a 又在table b 中的数据
- Spring 源码有了解没有
- MyBatis源码有了解没有
- MySQL事务隔离级别、MVCC