面灵AI

Bigo后端开发二面面经

轮次
二面
时间
2026-09
来源
牛客网

《面试题目》

  1. RAG 一般有哪些召回方式?如何做混合召回、融合和重排?
  2. RRF 中的 K 是什么意思?为什么常用 60?
  3. 字段冗余到主表后,原字段与冗余字段更新不同步怎么办?
  4. 事务 A 两次查询之间事务 B 插入并提交,会发生什么?这是不是幻读?
  5. 如何防止 Agent 修改错误代码?Patch 如何准确应用?
  6. 死信队列和重试机制如何设计?
  7. RabbitMQ 出现消费积压怎么办?
  8. SQL 慢查询如何定义和定位?
  9. 复合索引如何设计?索引顺序如何确定?
  10. MySQL Explain 之后应关注哪些字段?
  11. MySQL 的隔离机制和 MVCC 是什么?
  12. 乐观锁和悲观锁有什么区别?
  13. JWT 加 Redis 如何实现状态鉴权和主动失效?
  14. Redis 的持久化策略有哪些?缓存穿透、击穿、雪崩如何处理?
  15. Redis 热 Key 和大 Key 如何治理?
  16. Spring IOC、AOP 和循环依赖如何理解?
  17. Young GC 和 Full GC 什么时候发生?常见垃圾回收算法有哪些?
  18. Java 线程池核心参数和执行流程是什么?如何估算线程数?
  19. HTTP 与 HTTPS 有什么区别?HTTPS 如何加密?
  20. TCP 三次握手和四次挥手是什么过程?
  21. 进程、线程和协程有什么区别?
  22. 服务 CPU 飙高或出现 OOM 时如何排查?
  23. 如何实现三数之和?

《参考解析》

  1. 混合召回:关键词倒排擅长精确匹配,向量召回擅长语义相似;可先分别取候选,再用 RRF 等方法按名次融合,最后由交叉编码器或业务特征重排。RRF 的 K 是平滑常数,用于降低极高名次对总分的支配,具体取值应通过验证集评估。
  2. 缓存一致性:常用先更新数据库、再删除缓存,并通过重试、延时双删或 Binlog 订阅收敛。高频字段若强依赖一致性,应减少冗余或把更新写入同一事务边界,不能只靠定时刷新。
  3. 消息积压:先确认生产速率、消费延迟和失败原因,再按分区或消费者并行度扩容,必要时限流生产端。扩容不能破坏顺序和幂等,失败消息应进入有上限的重试与死信流程。
  4. CPU/OOM 排查:CPU 高先用线程级采样和栈信息定位热点;OOM 则结合 GC 日志、堆转储和对象支配树确认泄漏或峰值分配。修复后还要用同等流量验证,而不是只看一次指标回落。