字节后端-推荐架构面经 已offer

3.6 一面
自我介绍
一、 项目相关
1. 大概介绍一下你整个系统架构的链路,或者说你的系统整体链路是长什么样子?
2. 你的库存信息怎么保留?存不存在超卖的现象?
3. 你 Redis 里的信息是怎么跟 MySQL 做同步的?
4. 初始结果不一致怎么办?(存不存在 Redis 初始结果跟 MySQL 不一致的问题)
5. 你觉得这条链路在真实的生产环境下能用吗?还有哪些不完备的点?
6. 如果消费队列扣减失败或订单写入 MySQL 失败,导致数据不一致,你有什么自动化机制(校验+补偿)来解决?
7. 知识库构建的文档和语义信息数据来源是哪里?是自己整理的吗?
8. 通过什么去做分词和检索?
9. 向量数据库跟正常数据库的区别是什么?它怎么加速相似向量检索?
10. 是否了解 HNSW 算法的具体实现?
二、 八股
1. 缓存击穿、穿透、雪崩这三个概念上的区别是什么?
3. 使用 SETNX 指令跟执行 Lua 脚本的差异是什么?
4. 排他锁(X锁)跟共享锁(S锁)的区别是什么?
5. Java 线程模型如何保证线程间的公平性
6. CAS是做什么的?它有什么问题?
7. 数据库有哪些隔离级别?
8. 如何解决“幻读”问题?InnoDB 引擎下是怎么处理的?
9. 聚簇索引和非聚簇索引的区别是什么?
10. 什么情况下不需要“回表”查询
11. TCP 是通过哪些机制保证可靠传输的?
12. 如何解决网络拥塞问题?(拥塞控制、慢启动、快重传等机制)
13. 进程和线程在内存结构上有哪些区别和关系?
14. 同步 I/O 和异步 I/O 的概念怎么理解?
15. 异步 I/O 是在用户态执行还是系统态(内核)执行?谁来负责通知结果?
16. Linux 的软链接和硬链接有什么区别?删除原始文件后哪种还能正常访问?
17. Java 的 HashMap 是怎么解决冲突的
18. 实现“数组+链表”时,为什么不能直接用 ArrayList 或 LinkedList 替换掉那个数组?
手撕
之字形(Zigzag)打印二叉树。

3.10 二面
一、项目
1. 请介绍你在项目过程中印象最深、最具技术挑战或复杂度的点,以及你是如何解决的。
2. 在秒杀场景下,如何保证“库存扣减”与“一人一单”逻辑的原子性?
3. 为什么 Lua 脚本能做到分布式一致性?它是如何把多条命令聚合为原子操作的?
4. Lua 脚本是如何编排这些多条 Redis 命令的?它是感知多个用户的命令还是单用户的顺序命令?
5. 限流算法
6. 除了限流,你是否了解“熔断”机制?它与限流的区别是什么?在下游服务扛不住时该如何处理?
7. 你构建的知识库文档量级是多少?
8. 如何从原始文档构建出向量检索索引库?索引库的底层数据结构是什么样的?
9. 你了解 HNSW 和 IVF这两种索引算法的区别吗?它们分别适用于什么场景?
手撕
1. 无序数组频率统计 时间复杂度 O(n),空间复杂度 O(1)(允许修改原数组)
2. 旋转有序数组找最小值
3. 有 10 个 100G 的日志文件,存储用户的搜索 Query(存在重复),找出访问频次最高的 100 个 Query。单机内存仅 10G,可以使用多台机器。 口述思路

3.11 hr面半小时后oc,晚上下正式offer
明天就要入职了,希望一切顺利

#牛客AI配图神器#
全部评论
mark
点赞 回复 分享
发布于 03-31 01:27 上海
是暑期嘛 为什么只有两轮技术面
点赞 回复 分享
发布于 03-30 21:56 北京
27届拼多多实习机会或看我主页 https://careers.pddglobalhr.com/campus/intern?t=4OmKPVeX9a
点赞 回复 分享
发布于 03-23 16:20 上海
实习吗
点赞 回复 分享
发布于 03-23 14:11 湖南
拼多多招27届实习生啦 https://careers.pddglobalhr.com/campus/intern/detail?t=dRvUVvcTiA
点赞 回复 分享
发布于 03-23 11:18 上海
接好运
点赞 回复 分享
发布于 03-19 14:56 江苏
点赞 回复 分享
发布于 03-18 19:07 辽宁

相关推荐

04-06 19:13
复旦大学 C++
3.04投递,3.06通过简历评估,3.10一面一面:请做个自我介绍。针对我介绍的内容进行项目拷打,面试官着重往多线程,数据和网络方向询问。(我是一个游戏项目,技能系统与数值链路。对技能效果的并发执行,数据驱动模块的设计,以及如何转网络等方面进行浅显追问)你说你现在主要方向是C++,可我看你游戏项目都是C#C++学了哪些内容(我跟面试官说最近开始接触C++,但已经较为系统的过了一遍,包含内存结构,常见STL,编译等基础部分)介绍一下C++程序的内存结构你刚刚提到.bss区,那么在C++中static都有哪些作用你刚刚提到C的管理方式你刚刚提到内存泄漏,C++中怎么避免内存泄漏,哪些问题可能导致内存泄漏异常抛出怎么导致内存泄漏讲解下C#的GC讲解下C++的智能指针网络部分:讲解下网络七层协议(我按照五层协议讲解)传输层常见协议有哪些TCP和UDP的区别TCP如何进行拥塞控制(我答得比较浅显,回答了TCP头中有对应字段,相互通讯的时候可以通过字段来控制。以及传输网络中路由器也能进行节点提醒和调控)做过网络相关项目吗你说网络应用层中需要对数据体进行约定?你说的约定是什么?为什么要约定?(我这方面了解不是很深,这个“约定”是我总结出来的,对应知识点应该没这个东西,不然面试官不会这样问。我回答我说的约定是指,如果使用TCP方式进行传输,那么传输层接收端收到的仅仅是一串字节流,没有对应的意义,这个时候需要按照人为的约定的数据体或者结构体将对应字节流转换为对应实例等)多线程部分:当时还没深入了解,面试官看我不是很熟没有追问太深切换线程的负担主要来自哪里?你说你在项目中使用了数据驱动的模式,这个技能数据的大小一般是多少?你是怎么读取数据的?放在什么位置,什么时间进行读取?如果数据量很大,你会怎么处理?(这里一直在把我往异步读取数据的方向引,但是我项目数据量很小,没做异步,这里也只能硬着头皮说我是用异步设计的了)你是怎么设计的?介绍一下协程(我当时只接触了unity协程,这玩意和正常协程压根不是一个东西,它是单线程,本质是在一个线程中将代码换个位置执行,估计不是面试官想要的)协程和进程,线程的差别在哪手撕。二叉树最大层宽。这里我把层宽概念理解错了,我以为一层的节点数量代表层宽,面试官说层宽指该层第一个节点到最后一个中间的距离,哪怕中间有空位也算进去。反问环节。4天后收到电话告诉我一面通过二面:自我介绍项目拷打(主体方向与一面相同,追问比较少)手撕:假设有一个计算机集群,设计一个函数返回ip,给你一个对应ip表和其权重,要求输出的ip比符合权重比。当初我没了解集群算法,mapreduce,以为是常规算法题,然后之前刚刚好回答过操作系统对应的调度算法,我就跟面试官说按照CFS的调度思路来做,巴拉巴拉说一堆。其实我最开始想的是随机数,但我觉得这样可能会导致访问数量较小时ip比与权重比相差可能会很大。开始写的时候面试官告诉我思路错了,然后又搞了半天。反正最后也是没想到是集群算法,直到半小时后面试官才告诉我这算法要在所有机子上运行而不是单一机子上运行。然后我才理解压根就不是算法题而是情景题,也没有那么严格的输出要求,最后就说用随机数+前缀和返回值。LRU用了哪些数据结构(感觉面试官最开始想让我设计对应算法的,但是前面耽误太久了就让我讲一下。)我当初看第一题卡了太久,有点紧张脑子一抽给LRU忘了,只记得是一个缓存策略。然后回答完第三题后面试官一步步引导我把对应数据结构答出来了第三题是一个简单的图算法,课程表问题的变种,面试官让我讲了下思路就过了。简单八股:介绍下智能指针还有一些忘了,反正挺简单的问题反问四天后收到HR消息告诉我过了。二面面完感觉要挂了,当时觉得腾讯一面面挺好什么问题都回答出来了,肯定能过,结果腾讯那边挂了字节过了。。。。。。我项目全是游戏项目,结果游戏岗没过。。。。。。HR面自我介绍我看你项目全是游戏项目,为什么投字节推荐算法架构还有哪些流程在进行都是什么岗位为什么不投这些公司的非游戏岗讲一下你对推荐系统的了解如果其他流程都过了,你会偏向哪个?能尽快接受offer吗一周能实习几天能实习几个月然后HR给我介绍了下我的mentor和对应的业务(这里意识到应该是稳了)反问环节当天下午2点HR面,15分钟面完(HR小姐姐好漂亮),晚上5点收到电话告知我通过终面,能否接受offer,然后说offer还在流程处理,过几天才能收到。两天后收到offer
点赞 评论 收藏
分享
评论
11
59
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务