淘宝闪购Java社招一面面经
《面试题目》
- 写一个设计模式,策略或者责任链模式
- 项目。接口耗时下降,是什么带来的收益?
- 有无对前端耗时的优化?比如网络不好的情况,延迟上升怎么办?
- 项目切流是如何保证平稳的100%切换?
- 剩余还有多端前端来源流量如何治理?
- 前端有多套系统在调用,该如何处理?
- 业务类错误码可能是bug造成的,如何发现和治理?
- 如何预防新的bug产生?
- 治理系统问题中最具挑战性的是什么,个人有什么收获?
- 有考虑过用ai去分析链路性能吗?有没有用过arthas或者火焰图去分析性能?
《参考解析》
- 设计模式:策略模式适用于根据不同类型选择不同算法,减少if-else;责任链模式适用于过滤、审批流或请求拦截场景,增强代码的可扩展性。
- 接口耗时:通常从缓存引入、数据库索引优化、异步处理、代码逻辑简化(如减少循环查询)、或RPC调用合并等方面阐述。
- 流量切换:强调“灰度发布”策略,通过权重分流(如Nginx/网关)逐步增大流量,实时监控报错率和延迟,支持一键回滚。
- 错误码治理:建立统一的错误码中心,配合分布式链路追踪(TraceID),通过日志监控告警发现异常突增,定期分析各业务域错误统计报表。
- 性能工具:Arthas主要用于线上热更新、查看方法调用栈及耗时;火焰图则通过CPU采样分析,快速定位函数调用中占用资源比例最高的热点代码。