百度后端面经
- 轮次
- 一至三面
- 时间
- 2026-08
- 来源
- 牛客网
《面试题目》
- xxx 是一个什么平台,用户都是哪些人?
- xxx 的用户数如何统计?
- 平台如何实现登录?
- 面向企业和政府的平台为什么还需要优惠券模块?
- 责任链和 AOP 分别解决了什么问题?为什么要抽取责任链?
- 如何判定两个请求是重复请求?
- 优惠券秒杀链路如何保证幂等?
- 布隆过滤器在链路中有什么作用?
- 为什么使用 Lua 而不是 Redis 单条命令?
- Lua 脚本中连接 MySQL 会有什么问题?
- RocketMQ 的事务回查和本地事务如何配合?
- 压测如何做,压测机器和生产环境是否一致?
- JVM 参数如何配置?
- 位图编码为什么使用位图,有哪些优缺点?
- 智能客服系统的背景是什么,你负责哪些部分?
- HTTPS 与 HTTP 如何区别,HTTPS 如何加密?
- ConcurrentHashMap 为什么线程安全?
- AQS 如何实现同步?
- Redis 失败后系统如何处理,如何保证高可用?
- 线上流量超过压测结果时如何处理?
- 消息积压怎么办?
- 不扩容时如何把 QPS 从 4000 提升到 6000?
- 如何判断压测达到服务器性能上限?
- 如何设计实时抵扣优惠券额度且保证不超扣?
- RAG 中负责哪些部分?意图节点如何打分?
- 如何保证每个环节选择的模型最优?
- Hit@1 是什么,项目中如何评估?
- 线上运行结果和测评结果一致吗?
- 记忆压缩为什么这样设计?
- MCP 调用了哪些工具,如何评估准确率?
- 测评集有多少条?
- 日常如何使用 AI 提效?为什么不能让 AI 全部写代码?
《参考解析》
- 秒杀幂等与防重:请求应带业务幂等键,入口用布隆过滤器和 Redis 做快速拦截,最终以数据库唯一约束或条件更新兜底。Lua 适合把库存校验、扣减和记录幂等键放在 Redis 内一次完成;脚本中访问 MySQL 会阻塞 Redis 事件循环,应通过消息或业务层异步落库。
- 消息与高可用:RocketMQ 事务消息先写本地事务,再由回查确认提交或回滚;消费端用业务唯一键去重。Redis 故障时应有集群、哨兵、超时和熔断策略,关键结果以数据库或消息补偿为准,不能把降级当成成功。
- 压测与扩容前优化:先确认压测模型、数据分布和机器配置接近生产,再从连接池、批处理、热点缓存、锁粒度和序列化开销等方面优化,并用 CPU、内存、GC、网络和队列长度判断瓶颈。
- RAG 与 Agent 评测:RAG 关注召回、重排、引用准确性和答案可验证性;Hit@1 表示正确目标是否出现在第一位。Agent 路由应结合离线数据集、工具调用成功率、延迟和线上 bad case 持续评估,记忆压缩要保留任务状态和关键事实,避免上下文无限增长。