大疆后端面经
1. 自我介绍
2. 我们来聊个JVM调优的实战问题。假设你的一个核心服务,比如飞行轨迹计算服务,线上频繁发生FullGC。你会怎么一步步去分析这个问题?会考虑从哪些方面去优化JVM参数?
3. 来做一道算法题吧:分糖果问题。
4. 接下来是系统设计。我们要设计一个长连接服务,用来管理超过500万架无人机的同时在线。你会怎么设计这个系统,特别是怎么优化来降低服务器的资源消耗?
5. 再来一个设计题。我们需要一个无人机指令队列系统,这个系统必须支持优先级,比如“紧急避障”指令可以插队。我们要求紧急指令必须在50毫秒内送达无人机,你会怎么设计?
6. 假设你接手了一个单体的飞行控制系统,现在需要把它拆分成微服务架构。你会遵循哪些拆分原则?能给一个大致的实施方案吗?
7. 我们来聊聊时空数据。如果要实现一个“查询某个指定区域,最近1小时内所有飞行记录”的功能,要求毫秒级响应,你会怎么设计它的时空索引?
8. 这是一个K8s的场景题。我们有一个航拍数据处理服务,部署在K8s集群里,它有明显的早晚高峰特性。你会怎么配置HPA(Horizontal Pod Autoscaler)来实现高效的自动扩缩容?
9. 这是一个比较常规但很重要的问题:你平时是怎么监控和优化慢SQL的?
10. 这是一个高实时性的挑战。当无人机上的传感器检测到障碍物时,系统需要在20毫秒内完成避障指令的计算和下发。你会如何设计这样一个实时响应系统来满足如此严苛的延迟要求?
11. 最后再来一个设计题。我们要给500万架无人机做固件的差分升级。怎么设计这个系统,才能在保证升级成功率的同时,最大限度地减少带宽消耗?