字节跳动

后端开发工程师一面面经

完整信息

33 条问法 · 37 道题

本篇目录

请介绍自己、项目和承担的角色。为什么选择这些技术组件?

  1. 能不能只用一种数据库?为什么不只用 Redis,选择 MySQL 的依据是什么?

  2. 注册流程中的布隆过滤器、分布式锁和唯一索引,分别解决什么问题?

  3. 布隆过滤器判断用户名存在时,后续怎么处理?如果误判导致用户无法注册,怎么办?

  4. 布隆过滤器更新失败怎么办?如果重试一直失败,后续如何处理?

  5. 有人疯狂请求注册接口,如何限流?具体按什么维度识别和拒绝请求?

  6. 如何使用 requestId 实现幂等?

  7. 既然 requestId 可以防重,为什么还需要加锁和二次校验?

  8. Redis 有哪些持久化方式?AOF 持久化的具体流程是什么?

  9. AOF 与 RDB 应该如何选择?

  10. 如何保证数据库与缓存的一致性?并发读写时出现旧数据怎么办?

  11. MongoDB 字段级 Patch 和 CAS 版本控制分别解决什么问题?

  12. 如果 Redis 数据全部丢失,如何恢复面试进度?

  13. Redis Stream 的消费者处理到一半宕机,会发生什么?

  14. 如果 Redis 自身宕机,如何优化系统可用性?

  15. 会话级 FIFO 能否保证顺序?多个 Worker 同时执行时如何协调?

  16. 请解释 RAG 从文档上传、处理到检索和回答的完整流程。

  17. 如何评估 RAG 或重排的效果?自己出的几个问题能否代表真实用户的各种提问?

  18. 多个知识库的检索结果如何融合?不同知识库的分数一定不能直接比较吗?为什么?

  19. HashMap 为什么线程不安全?线程安全的替代方案如何实现?

  20. MySQL 为什么需要两阶段提交?redo log 和 binlog 如何协调,故障后如何恢复?

  21. 事务有哪些特性?

  22. 死锁有哪些必要条件?

  23. 事务有哪些隔离级别?分别是什么意思?MySQL 默认的隔离级别是什么?

  24. 读未提交可能出现哪些读异常?脏读、不可重复读和幻读分别是什么情况?

  25. Redis 的 key 过期之后,内存会立即释放吗?

  26. AI 调用很慢,应该如何设计线程池?

  27. 同一个类中的普通方法调用另一个带事务注解的方法,事务一定会生效吗?

  28. 流式输出的断线补发如何实现?

  29. 每段生成内容都写数据库,请求量增大后如何处理?如果改用 Redis,又如何应对其宕机风险?

  30. 前端断线或者用户主动停止时,整个后台任务是否应该取消?已经调用的工具能否停止?

  31. Java GC 有哪些基本算法?它们分别如何工作?

本篇目录
  1. 01
  2. 02
  3. 03
  4. 04
  5. 05
  6. 06
  7. 07
  8. 08
  9. 09
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
    多个知识库的检索结果如何融合?不同知识库的分数一定不能直接比较吗?为什么?
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
    事务有哪些隔离级别?分别是什么意思?MySQL 默认的隔离级别是什么?
  25. 25
  26. 26
  27. 27
  28. 28
    同一个类中的普通方法调用另一个带事务注解的方法,事务一定会生效吗?
  29. 29
  30. 30
    每段生成内容都写数据库,请求量增大后如何处理?如果改用 Redis,又如何应对其宕机风险?
  31. 31
    前端断线或者用户主动停止时,整个后台任务是否应该取消?已经调用的工具能否停止?
  32. 32
  33. 33

相关公司