4.13 字节跳动国际支付一面面经

字节跳动 · 后端开发 · 一面 · 2026-04

面试题目

1. 项目拷打

  • 微服务注册中心及注册原理、微服务通信机制。
  • DDD领域驱动设计:各层概念、领域边界划分依据、领域与数据库表映射关系。
  • 跨领域分布式事务的解决方案。
  • MQ消息队列:生产者如何保证消息可靠发送。
  • 高并发超卖场景下:Redis与DB的一致性问题。

2. 八股文

  • JUC:ReentrantLock的使用,AQS底层原理及源码。
  • JVM:垃圾回收器分类,G1收集器的GC过程。
  • MySQL:索引分类与原理;事务特性;RR(可重复读)的实现原理。

3. 算法题

  • LeetCode 567:字符串的排列(滑动窗口)。

4. 交流

  • 询问新技术储备。
  • 反问:AI在企业中的应用及其对岗位的影响。

参考解析

1. Redis与DB一致性: 常见方案为“先更新DB,再删除缓存”。若需强一致性,可使用分布式锁(Redisson);若允许短暂不一致,可采用延时双删或订阅Binlog(如Canal)进行异步更新。

2. AQS原理: AQS通过一个volatile int state变量表示同步状态,内部维护一个FIFO的双向队列。当线程获取资源失败时,将其封装为Node节点放入等待队列并挂起,直到前驱节点释放状态并唤醒后继节点。

3. MySQL RR实现: RR通过MVCC(多版本并发控制)实现。事务开启后,通过生成ReadView,利用undo log记录的版本链,确保查询只能看到事务开始前已提交的数据,从而避免不可重复读。

4. G1 GC过程: G1将堆划分为多个大小相等的Region。过程包括:初始标记、并发标记、最终标记、筛选回收。其特点是将堆内存碎片化管理,并根据设定的停顿时间目标,优先选择回收收益最大的Region。