字节跳动AI后端开发日常实习一面面经
面试题目
一、项目拷打
- 项目一:
- 请介绍一下你的图文社交平台项目的主要功能。
- 用户基于笔记的交互,你是归类到用户还是归类到笔记呢?
- 可以说一下Nacos服务发现的过程吗?
- Nacos和ZooKeeper有什么区别?
- 可以讲一下JWT的原理吗?如果不用黑名单,还有其他方式让JWT失效吗?
- Nacos的AP/CP模式及CAP理论。
- 分布式ID组件Leaf的原理。
- 项目二:
- 结合业务讲讲秒杀功能实现。
- Redis与MQ操作的先后逻辑,MQ发送失败的处理机制。
- 展开讲讲“缓存安全优化”(逻辑过期方案)。
- 并发下多个线程同时发现Key过期如何避免缓存击穿?
- 未支付订单定时关闭的延迟一致性问题。
- 缓存穿透除了存空值,还有什么方式?
二、八股文环节
- Java内存回收机制。
- 最近学习的新技术体系及学习方式。
- 公钥、私钥、摘要、哈希值概念。
- HTTPS工作流程中是否一直使用公钥私钥?
- 什么是一致性哈希?
三、手撕代码
- LeetCode 667:优美的排列Ⅱ
参考解析
- Nacos vs ZooKeeper:Nacos支持AP/CP切换,更适配云原生;ZK主要遵循CP,强一致性高,但选举期间不可用。
- JWT失效方案:除黑名单外,可采用短有效期+刷新令牌(Refresh Token)模式,或在服务器端维护版本号,JWT含版本号,版本变更即失效。
- 缓存击穿处理:采用逻辑过期方案,需使用互斥锁(如Redis的SETNX)保证仅有一个线程执行数据库查询并重建缓存,其余线程读取旧值。
- HTTPS流程:非对称加密仅用于握手阶段协商对称密钥,后续数据传输采用性能更高的对称加密(AES等),且包含数字证书校验及摘要校验。
- 一致性哈希:引入哈希环,将节点和数据映射到环上,通过顺时针查找节点减少扩缩容时的数据迁移量,配合虚拟节点解决分布不均问题。