注意,这里所有的面经都是已第一人称书写,但并不表述全部都是我个人的经历,有来自我个人的,也有来自其他小伙伴和我之间的交流)
没看过系列前面几篇的小伙伴,可以直接传送去看一下。一是网易的面经。
涂鸦
三面技术 电话面试
- 分布式锁,分布式事务解决方案。
- MQ,MQ的推拉模式,rocketMQ的内部实现。
电话面试。很奇葩的公司,自我介绍都没有,上来直接问技术。分布式事务,分布式锁,以及在项目中如何实现的,然后扣细节,问了一下实现的具体细节。然后问了一下了解的MQ的推拉模式。回答的不是很好,项目中的实现细节没有把握好。MQ的推拉模式准备的不是很好,实现细节没有回答好。总体感觉项目上的准备还有欠缺,MQ的细节还要补补。
没有后续,一面挂。
大搜车
两面技术 电话+现场
一面:电话
- 分布式锁,分布式事务
- 定时任务如何实现,自己设计下
- JVM基础内容,GC算法以及相关的GC流程。JVM调优。
- 线程池的创建,ThreadPoolExecutor7个参数,自定义拒绝策略,阻塞队列大小。
- redis哨兵机制
- RocketMQ的延迟消息特征。
先是简单的自我介绍,问了分布式事务相关问题,在项目中是如何实现的,由于其中涉及到定时job,也说了一下关于实现定时任务的方法。然后问了一下JVM相关的问题,JVM调优,常用的GC算法,PS,PO,CMS算法等。又问了一下JUC相关的,创建线程池的方法,ThreadPoolExecutor的七个参数,具体的自定义线程创建工厂,拒绝策略,阻塞队列的大小。还问了redis的哨兵机制,rocketMQ的延迟消息特性。
二面: 现场
- 项目架构图,项目的技术点,微服务划分,为什么这么设计
- rocketMQ的消息推拉模式实现原理
- redis的主从同步机制及其流程和原理
- 算法:英文字符串排序排序,不开辟额外空间
二面相对更偏考察你的思想一点,主要还是集中围绕你的项目展开,画一下项目的架构图,服务为什么这么划分,有没有什么问题?如何解决,优化。然后就是一些基本的中间件相关的概念,内部实现,底层源码说一点。最后就是做一道算法题。
如果大家觉得我写的还可以,对你有帮助,还希望点个赞。这样我也有更大的动力去回顾自己这一路的磨炼,整理出更高质量的面经,给你们更好的参考资料。