滴滴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