百度后端开发暑期实习一面面经
《面试题目》
- 负载均衡的常见实现方式有哪些?Keepalived 基于什么协议实现,核心配置参数有哪些?
- 请解释 TCP 三次握手的过程。
- TCP 和 UDP 有什么区别?
- DNS 的解析过程是什么?
- ICMP 协议有什么用途,
ping如何工作? - 二层交换与三层路由有什么区别?
- C++ 智能指针有哪些类型,各自适合什么场景?
- 线上 CPU 占用率过高时如何排查?
- 项目是否部署到公网或发布到 GitHub?
- Kafka 的核心机制是什么?
- MySQL 索引如何工作?如何排查和优化慢查询?
- 你对 AI 有哪些了解?
- 请介绍项目经历。
- 是否使用过抓包工具,如何分析网络请求?
- MySQL 主从复制和持久化机制分别是什么?
- 算法题:实现二叉树的层序遍历。
《参考解析》
- Keepalived 与负载均衡:Keepalived 主要通过 VRRP 提供虚拟 IP 漂移和高可用,常见配置包括实例状态、网卡、虚拟路由 ID、优先级、认证和虚拟 IP;它通常与 LVS 或反向代理配合。
- TCP 三次握手:客户端发送 SYN,服务端返回 SYN 与 ACK,客户端再回复 ACK。第三次握手用于确认服务端的响应已被客户端收到,避免失效连接请求占用服务端资源。
- CPU 过高排查:先用系统指标确认进程与线程,再结合调用栈、性能采样、GC、锁竞争和请求流量定位热点,同时核对近期发布和依赖异常,避免只看平均值。
- MySQL 慢查询:通过慢查询日志和执行计划检查全表扫描、索引选择、回表、排序与锁等待;优化时应从查询范围、联合索引、数据量和事务边界共同判断。
- 层序遍历:使用队列保存待访问节点,每次取出队首并依次压入左右子节点;若需要按层返回,则在每轮记录当前队列长度。