BIGO后台开发一面面经
- 轮次
- 一面
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
- 调用企业微信 API 失败会有什么影响?
- 多 Agent 智能助手如何限制重规划?
- RAG 知识库如何切片、搭建和更新?
- 死信队列、重试机制和延迟队列如何实现?
- 消费重复时如何处理?如何保证消息推送成功?
- RabbitMQ 出现消费积压怎么办?
- SQL 慢查询如何定义和分析执行计划?
- 复合索引如何设计?
- MySQL 隔离级别和 MVCC 是什么?
- JWT 加 Redis 如何实现主动失效?
- Redis 持久化、缓存穿透、击穿、雪崩、热 Key 和大 Key 如何治理?
- Spring IOC、AOP 和循环依赖如何工作?
- Young GC、Full GC 和常见垃圾回收算法是什么?
- Java 线程池核心参数、执行流程、拒绝策略和线程数如何设置?
- HTTP、HTTPS、TCP 握手挥手和进程线程协程有什么区别?
- 服务 CPU 飙高或 OOM 时如何排查?
- 如何实现三数之和?
《参考解析》
- 消息可靠性:生产端确认并持久化,Broker 通过副本保证存储,消费端在业务成功后确认。业务处理必须幂等,失败消息按退避策略重试,超过上限进入死信并保留告警和人工处理入口。
- JWT 主动失效:JWT 提供无状态校验,但服务端可在 Redis 维护用户会话版本、撤销列表或设备令牌。每次请求校验签名和会话状态,退出登录、改密和风控事件更新撤销信息。
- 缓存问题:穿透是查询不存在数据,击穿是热点键失效瞬间并发回源,雪崩是大量键同时失效。空值、布隆过滤器、互斥重建、随机过期和限流应按风险组合使用,并监控回源量。
- 线程池配置:任务先尝试创建核心线程,再入队,队列满后创建非核心线程,最终执行拒绝策略。线程数需结合 CPU、I/O 等待、队列长度、数据库连接数和内存上限估算,不能直接套固定公式。