百度二面面经
1. 自我介绍。有提到扁平化的微服务改造。
2. 1提到的我当时说没有用SpringBoot和docker,他问我怎么才算微服务。我突然意识到,我说我刚才没有表达清楚,其实我们已经算是微服务改造了。我之所以去说SpringBoot和Docker只是想用最新的微服务架构的技术去做容器的管理,比如资源的调度和高可用。(自己给自己挖的坑吧)。
3. 看到我项目里面用了redis,为什么要用redis ?
4. 然后他紧接着问我,你确定redis比Mysql快?
5. 我们项目中的那些业务必须要用redis,既然说redis可以给mysql减压,那你们系统的用户量和并发量是多少?有没有遇到过Mysql顶不住宕机的情况?
6. 在使用redis的时候你应该注意那些问题(两阶段写(写redis和mysql非原子性),缓存雪崩,缓存击穿,和缓存穿透的问题)。
----------------------------------------------然后开始疯狂问简历--------------------------------------------------
7. 看你简历上写你深入理解OOP,说一下你对OOP的理解。
8. 你说你有良好的编程习惯,具体体现在哪里。
9. 怎么用的设计模式去重构的流程模块。讲一下思路。
10. 最近看过那些书?学JAVA多久了?什么时候能来实习,能来多久?
11. 看你熟悉mysql,简单说一下MVCC。
12. 说一下你在线上使用mysql遇到的具体问题。
13. 说一下Mysql线上调优的经验。
14. synchronized的实现,死锁产生的条件和如何避免。
15. 线上的mysql故障的问题排查过程和原因和事故后处理全过程。(主要是因为sql写的不行,行锁占用的多,在加上运维人员失误,线上直接DDL加索引,造成MDL读写锁冲突,并且把后面的读请求全部卡住,客户端超时重试之后,mysql的线程池就爆了。这就是整个故障)。
16. 设计一个秒杀活动,上亿并发抢5个手机,怎么保证服务的高可用,并且商品不超卖。(这里要画架构图,并且前后端整个过程都要说,之前看过相关博客,说了一下)。
17. Servlet的声明周期,合适创建,整个调用过程。
18. Servlet,Filter,Listener,拦截器的区别。
19. 进程间通信的方法。进一步共享内存怎么保证互斥(安全)。
20. 说一下TCP和UDP的区别。
21. 具体说一下TCP三次握手和四次挥手。
22. 为什么三次握手?四次挥手的wait_close是做什么的,最后为什么要等2MSL。
123 算法题两个:一个是场景下的二分查找,另一个是用两个栈,实现队列。(leetcode上有,主要算法的效率)。