NiceOffer

面试面经 · 字节跳动

【字节跳动】【后端开发】【二面】Go方向二面,Redis分布式锁+MySQL异地多活深度追问

字节跳动后端开发校招面经二面

【字节跳动】【后端开发】【二面】Go方向二面,Redis分布式锁+MySQL异地多活深度追问

基本信息

项目内容
公司字节跳动
岗位后端开发(Go方向)
轮次二面
时间2025年秋招
面型体感项目深挖+分布式系统设计,追问答到细节
结果未通过

面试题目(按提问顺序)

  1. 自我介绍
  2. 实习/项目拷打(重点追问)
  3. Redis分布式锁是怎么实现的?
  4. 只用SETNX有什么问题?如何优化?
  5. 假设一个业务平均执行100毫秒,你会把锁的超时时间设置成多少?续期策略是怎样的?
  6. MySQL异地多活,两边的数据如何保持一致?
  7. 异地多活或者分库分表的情况下,自增主键冲突问题怎么解决?
  8. Go Slice的日常使用方式、底层数据结构、扩容机制?
  9. 有没有导致GC没办法回收Slice的场景?
  10. Slice在函数传参时是值传递还是引用传递?
  11. 利用Go的基本数据结构,设计一个并发安全的队列
  12. Go反射是什么?有哪些应用场景?
  13. 结合浏览器访问URL的例子,解释TCP/IP分层协议及流程
  14. TCP三次握手流程详细描述
  15. 常用Linux命令有哪些?
  16. ls调用了哪些系统调用?
  17. Unix操作系统的分层逻辑(内核态/用户态)
  18. 进程间通信方式有哪些?
  19. 项目中Redis比较有收获的设计点?
  20. 手撕:无重复字符的最长子串(LeetCode 3)

面试感受 / 反馈

  • 两轮面试基本都在拷打实习和项目
  • 面试官追问非常深:从Redis分布式锁追到续期策略,从MySQL追到异地多活数据一致性
  • Go语言基础考得很细,Slice的底层结构和GC问题是重点
  • 系统设计题需要能结合实际场景给出方案
  • 手撕算法是LeetCode中等难度

准备建议

  • Redis分布式锁要能说到Redlock、Watch Dog续期机制
  • MySQL高可用方案(异地多活、分库分表)要有自己的理解
  • Go语言要深入Slice、Map底层、GC机制、并发原语
  • 项目中的技术决策要能说出"为什么"和"有没有更好的方案"