大疆后端面经
1. 自我介绍+项目介绍
2. ThreadLocal咱们平时用的时候,都说要注意内存泄漏,具体是怎么避免的呢?
3. 聊聊Nacos吧,它的选举机制是怎么样的?跟Raft算法有什么关系,能讲讲Raft的原理吗?
4. 分库分表这个话题,你了解哪些实现方案?分了之后,分布式ID一般是怎么生成的?
5. 如果我想在线程池的父子线程之间传递ThreadLocal里的值,有什么办法吗?
6. MySQL性能调优,你一般会从哪些方面入手?有什么方法和思路?
7. 布隆过滤器,能讲讲它的原理吗?在什么场景下会用到它?
8. Dubbo在做RPC调用的时候,如果调用失败了,它都有哪些处理机制?比如重试、降级这些。
9. 你是怎么理解线程安全这个概念的?平时在代码里是怎么处理线程安全问题的?
10. 我们常说Redis单线程快,而且是线程安全的。它的线程安全具体是怎么保证的?
11. MySQL主从同步如果出现延迟了,一般是什么原因造成的?有什么解决方案?
12. MySQL的binlog有哪几种格式?它们之间有什么区别?
13. 实现分布式锁,都有哪些方案?能讲讲它们的原理吗?
14. 如果要你来设计一个全链路压测平台,你的设计思路是怎样的?
15. 系统升级的时候,经常涉及到数据迁移,怎么才能做到平滑迁移,不影响线上业务?
16. 线上服务JVM频繁Full GC,你会怎么去排查和解决?
17. 数据库如果发生死锁了,一般的排查步骤是怎样的?
18. 做了分库分表之后,如果某个库或表出现数据倾斜,有什么解决办法?
19. 用分布式锁的时候,如果第一次加锁失败了,后续的重试机制一般怎么设计比较合理?
20. 有没有遇到过MySQL执行计划选错了索引的情况?碰到了怎么处理?
21. Spring的核心是IOC,你觉得要实现一个IOC容器,关键点有哪些?
22. Spring的声明式事务很方便,它的底层原理是什么?
23. 设计一个订单超时自动取消的功能,你会怎么实现?
24. 在并发编程里,线程的同步(Synchronization)和协作(Coordination),它俩有什么区别?
25. Spring里的过滤器(Filter)和拦截器(Interceptor),它俩在应用场景上有什么具体的区别?
26. 为了应对高并发,我们通常会给系统加一些保护策略,比如限流、降级、熔断,能聊聊你对这些的理解吗?
27. RocketMQ的顺序消费,如果觉得性能跟不上,有什么优化的办法吗?
28. 像微信、支付宝那种扫码登录的功能,它的技术原理是什么?
29. JVM的安全点(Safepoint)除了在GC的时候会用到,你还知道它在哪些其他场景下会触发吗?
30. 最后来一道算法题吧:判断一个链表里有没有环。